       Security.allowDomain("*");
       Security.allowInsecureDomain("*");
 
-      var field: TextField = new TextField();
-      field.text = ExternalInterface.available ? "Available" : "Unavailable";
-      addChild(field);
+      registerExternalMethods();
 
-      //posterUrl = loaderInfo.parameters['poster'];
+      posterUrl = loaderInfo.parameters.poster;
       videoUrl = loaderInfo.parameters.video;
+      muted = loaderInfo.parameters.muted == "true";
+      autoPlay = loaderInfo.parameters.autoPlay == "true";
 
-      //setBackgroundColor();
-      registerExternalMethods();
-      //if (posterUrl) loadPoster();
-      //loadVideo();
+      setBackgroundColor();
+
+      if (posterUrl) {
+        loadPoster();
+      }
+
+      loadVideo();
+    }
+
+    private function play(): void {
+      videoPlaying = true;
+      stream.resume();
+    }
+
+    private function pause(): void {
+      videoPlaying = false;
+      stream.pause();
+    }
+
+    private function isPaused(): Boolean {
+      return !videoPlaying;
+    }
+
+    private function mute(): void {
+      stream.soundTransform = new SoundTransform(0);
+    }
+
+    private function unmute(): void {
+      stream.soundTransform = new SoundTransform(1);
+    }
+
+    private function isMuted(): Boolean {
+      return stream.soundTransform.volume == 0;
     }
 
     private function setBackgroundColor(): void {

    }

    private function registerExternalMethods(): void {
      ExternalInterface.addCallback("foo", function(): void {
        var field: TextField = new TextField();
        field.text = "BAR!";
        field.y = 15;
        addChild(field);
      });

      ExternalInterface.call("DivineVideoPlayer.ready");
    }


  import flash.events.Event;
  import flash.events.NetStatusEvent;
  import flash.external.ExternalInterface;
  import flash.media.SoundTransform;
  import flash.media.Video;
  import flash.net.NetConnection;
  import flash.net.NetStream;
