 {
 	
 	import flash.events.EventDispatcher;
+	import com.robertpenner.easing.Linear;
+	import flash.events.TimerEvent;
 	import flash.utils.getTimer;
 	import flash.utils.Timer;
-	import flash.events.TimerEvent;
 	import reprise.events.CommandEvent;
+	import reprise.events.MediaEvent;
 	import reprise.events.StateChangeEvent;
-	import reprise.events.MediaEvent;
 	import reprise.external.IResource;
+	import reprise.tweens.SimpleTween;
 	import reprise.utils.MathUtil;
 	
 	

		protected var m_speed:Number;
		protected var m_lastLoadProgress:uint = 0;
		protected var m_lastSpeedCheck:uint;
				
		
		

			vol = Math.min(1, vol);
			m_volume = vol;
			doSetVolume(vol);
		}
		
		public function muteAndPause(duration:uint):void
		{
			if (m_state != STATE_PLAYING)
			{
				return;
			}
			m_volumeBeforeFade = volume();
			cancelMuteTween();
			m_muteTween = new SimpleTween(duration);
			m_muteTween.addTweenProperty(this, 'setVolume', m_volumeBeforeFade, 0, 
				Linear.easeNone, false, true);
			m_muteTween.addEventListener(CommandEvent.COMPLETE, muteTween_complete);
			m_muteTween.execute();
		}
		
		public function volume():Number
