diff --git a/player/index.html b/player/index.html
index ba64070..60c2f38 100644
--- a/player/index.html
+++ b/player/index.html
@@ -195,6 +195,7 @@
             }
         },
         path: 'exports/render/data.json',
+        audioFactory: createAudio,
     };
     // lottie.setQuality('low');
     // anim.setSpeed(0.5)
@@ -208,6 +209,12 @@
         console.log(error)
     })
 
+    function createAudio(assetPath) {
+        return new Howl({
+            src: [assetPath]
+        })
+    }
+
 </script>
 
 </body>
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index be21b3a..f487477 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -68,6 +68,9 @@
     this.autoloadSegments = params.hasOwnProperty('autoloadSegments') ? params.autoloadSegments :  true;
     this.assetsPath = params.assetsPath;
     this.initialSegment = params.initialSegment;
+    if (params.audioFactory) {
+        this.audioController.setAudioFactory(params.audioFactory);
+    }
     if (params.animationData) {
         this.configAnimation(params.animationData);
     } else if(params.path){
diff --git a/player/js/elements/AudioElement.js b/player/js/elements/AudioElement.js
index ac8a59b..0ff7d48 100644
--- a/player/js/elements/AudioElement.js
+++ b/player/js/elements/AudioElement.js
@@ -6,9 +6,7 @@
 	this._isPlaying = false;
 	this._canPlay = false;
 	var assetPath = this.globalData.getAssetsPath(this.assetData);
-	this.audio = new Howl({
-      src: [assetPath]
-    })
+    this.audio = this.globalData.audioController.createAudio(assetPath)
     this._currentTime = 0;
     this.globalData.audioController.addAudio(this);
     this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate,this) : {_placeholder:true};
@@ -29,9 +27,9 @@
 
 AudioElement.prototype.renderFrame = function() {
 	if (this.isInRange && this._canPlay) {
-		if ((!this._isPlaying)) {
-			this.audio.play()
-			this.audio.seek(this._currentTime / this.globalData.frameRate)
+		if (!this._isPlaying) {
+			this.audio.play();
+			this.audio.seek(this._currentTime / this.globalData.frameRate);
 			this._isPlaying = true;
 		} else if (!this.audio.playing()
 			|| Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1
diff --git a/player/js/utils/audio/AudioController.js b/player/js/utils/audio/AudioController.js
index 72517d2..e436fc1 100644
--- a/player/js/utils/audio/AudioController.js
+++ b/player/js/utils/audio/AudioController.js
@@ -1,7 +1,8 @@
 var audioControllerFactory = (function() {
 
-	function AudioController() {
+	function AudioController(audioFactory) {
 		this.audios = [];
+		this.audioFactory = audioFactory;
 	}
 
 	AudioController.prototype = {
@@ -25,6 +26,26 @@
 			for(i = 0; i < len; i += 1) {
 				this.audios[i].setRate(rateValue)
 			}
+		},
+		createAudio: function(assetPath) {
+			if (this.audioFactory) {
+				return this.audioFactory(assetPath);
+			} else if (Howl) {
+				return new Howl({
+					src: [assetPath]
+				})
+			} else {
+				return {
+					isPlaying: false,
+					play: function(){this.isPlaying = true},
+					seek: function(){this.isPlaying = false},
+					playing: function(){},
+					rate: function(){},
+				}
+			}
+		},
+		setAudioFactory: function(audioFactory) {
+			this.audioFactory = audioFactory;
 		}
 	}
 
