topical media & game development

talk show tell print

actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerModel.ax

actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerModel.ax [swf] flex


  
Flash Video for Professionals: MVC Player http://www.flashconnections.com
author: James O'Reilly

  
  package com.flashconnections.ui.component.mediaPlayer
  {
          import flash.net.NetConnection;
          import flash.events.NetStatusEvent;
          
          import com.flashconnections.pattern.mvc.Model;
          import com.flashconnections.ui.component.mediaPlayer.ifc.I@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerModel;
          import com.flashconnections.ui.component.mediaPlayer.MediaPlayerView;
          import com.flashconnections.ui.component.mediaPlayer.NetStreamExt;
          import com.flashconnections.ui.component.mediaPlayer.playlist.ifc.IPlaylist;
          import com.flashconnections.ui.component.mediaPlayer.playlist.Playlist;
          import com.flashconnections.util.Trace;
          
          public class @ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerModel extends Model implements I@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerModel 
          {
                  private var _conn_nc:NetConnection;
                  private var _stream_ns:NetStreamExt;
                  private var _playlist:IPlaylist;
                  private var _path:String;
                  
                  public function setConnection(val:NetConnection):void {
                          _conn_nc = val;
                  }
                  public function getConnection():NetConnection {
                          return _conn_nc;
                  }
                  public function setStream(val:NetStreamExt):void {
                          _stream_ns = val;
                  }
                  public function getStream():NetStreamExt {
                          return _stream_ns;
                  }
                  
                  public function @ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerModel() {}
                  
                  public override function init():void {
                          setConnection(new NetConnection());
                          getConnection().connect(null);
                          getConnection().addEventListener(NetStatusEvent.NET_STATUS, onConnNetStatus);
                          setStream(new NetStreamExt(getConnection()));
                          getStream().bufferTime = 3;
                          setPlaylist(new Playlist());
                  }
                  public override function toString():String {
                          return "com.flashconnections.ui.component.mediaPlayer.@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerModel";
                  }
                  // events
                  public function onConnNetStatus(event:NetStatusEvent):void {
                          trace("connection status: ");
                          for (var prop:String in event.info) {
                                  trace("\t" + prop + ": " + event.info[prop]);
                          }
                  }
                  public function onBWDone ():void 
                  {
                          trace("connection onBWDone");
                  }
                  // transport methods
                  public function play():void {
                          getStream().play(_path);
                          MediaPlayerView(getView()).onPlay();
                  }
                  public function playMedia(path:String):void {
                          _path = path;
                          getStream().close();
                          getStream().play(path);
                          MediaPlayerView(getView()).onPlayMedia(path);
                  }
                  public function pause():void {
                          getStream().togglePause();
                          MediaPlayerView(getView()).onPause();
                  }
                  public function stop():void {
                          getStream().close();
                          MediaPlayerView(getView()).onStop();
                  }
                  public function setMediaPosition(val:Number):void {
                          MediaPlayerView(getView()).onSetMediaPosition(val);
                  }
                  public function getMediaPosition():Number {
                          return -1;
                  }
                  public function setVolume(val:Number):void {}
                  public function getVolume():Number {
                          return -1;
                  }
                  // playlist methods
                  public function setPlaylist(val:IPlaylist):void {
                          _playlist = val;
                  }
                  public function getPlaylist():IPlaylist {
                          return _playlist;
                  }
                  public function playNext():void {
                          playMedia(String(getPlaylist().getNext()));
                          MediaPlayerView(getView()).onPlay();
                  }
                  public function playPrevious():void {
                          playMedia(String(getPlaylist().getPrevious()));
                          MediaPlayerView(getView()).onPlay();
                  }
          }
  }


(C) Æliens 27/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.