topical media & game development
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.