 
             invalidateSize();
             invalidateDisplayList();
+        }
+    }
+    
+    //----------------------------------
+    //  muted
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  mutedVolume tracks what the volume was before we were 
+     *  muted.  If we aren't muted, mutedVolume = -1.
+     */
+    private var mutedVolume:Number = -1;
+    
+    [Inspectable(category="General", defaultValue="false")]
+    
+    /**
+     *  Set to <code>true</code> to mute the video, <code>false</code> 
+     *  to unmute the video.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get muted():Boolean
+    {
+        return mutedVolume != -1;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set muted(value:Boolean):void
+    {
+        // if trying to unmute and we're muted
+        if (!value && mutedVolume != -1)
+        {
+            mx_internal::videoPlayer.volume = mutedVolume;
+            mutedVolume = -1;
+        }
+        // if trying to mute and we're not muted
+        else if (value && mutedVolume == -1)
+        {
+            mutedVolume = mx_internal::videoPlayer.volume;
+            mx_internal::videoPlayer.volume = 0;
         }
     }
     

    }
    
    //----------------------------------
    //  source
    //----------------------------------
    

        else
            source = this.source as String;
        
        if (isNaN(duration))
            mx_internal::videoPlayer.play(source, live);
        else
            mx_internal::videoPlayer.play(source, live, duration);
    }
   
    /**
