Jw Flv Player Model模块

Model(模型)块的作用是处理事务,它负责所有的数据处理.它根据Controller传递来的事件类型就行实际的操作,并把数据传递给View以给出合适的视图显示.在jw flv player中,Model块的作用是管理媒体对象.

AbstractModel

jw flv player AbstractModel类图

该类的属性:

  • registeredViews:保存视图实例,以便向它发送更新消息.
  • controller:控制器
  • congfig:设置参数
  • feeder:管理播放列表
  • currentItem:当前播放对象的索引
  • currentURL:当前播放对象的路径
  • mediatypes:文件类型
  • isActive:指示当前模型是否处于活动状态
  • currentPosition:播放头的位置

AbstractModel类的方法:

  • AbstractModel:构造函数,主要作用是对registeredViews,controller,config,feeder赋值
  • getChange:公有属性.用来从Controller获得变动信息.它主要接收:item,start,pause,stop,volume这些相关的消息.
  • setItem:设置要播放的对象,并根据播放对象的类型确定当前Model是否应该处于活动状态(isActive),比如要播放FLV文件,那么MP3Model和ImageModel都应该处于非活动状态,而FLVModel应该处于活动状态.
  • setStart:播放.具体操作由子类完成.
  • setPause:暂停.
  • setStop:停止
  • setVolume:设置新的音量值. AS Code
    private function setVolume(vol:Number) { 
    	isActive == true ? sendUpdate("volume",vol): null;
    };
    我们看到改变音量时Model实际上也没做什么,只是告诉视图要改变音量了.其实,实际的设置音量的动作要由子类实现,因为AbstractModel并不知道实际的媒体文件是什么类型的,也就无法完成设置音量的实际操作,但是无论如何,都应该告诉视图,音量改变了,视图也需要更具实际的值做些改变.
  • sendUpdate:公有方法,向视图类发送更新通知,让视图改变用户界面.
  • sendCompleteEvent:这个是要想Controller发送一个播放完毕的事件,由Controller决定下一个动作.

FLVModel

jw flv player FLVModel类图

FLVModel的属性

  • mediatypes:保存了FLVModel可以处理的文件类型,包括flv,rtmp,mp4,m4v,m4a,mov,3gp,3g2.
  • connectObject:NetConnection对象.
  • streamObj:NetStream对象
  • soundObj:控制音量
  • loadedInterval:监视下载时用
  • currentLoaded:已下载的百分比
  • positionInterval:设置进度条用
  • metaDuration:元数据保存的时间长度
  • currentState:当前播放的视频的状态
  • currentVolume:音量
  • videoClip:显示视频的元件
  • metaKeyframes:关键桢对象,用来从PHP流中读取视频数据
  • stopFired:是否触发停止事件
  • flvType:转换FLV类型
  • capView:字幕视图

FLVModel的方法

  • FLVModel:构造函数.先调用父类的构造函数,初始化继承的属性.然后初始化自己的属性.
  • setItem:确定使用哪种格式的FLV(HTTP,RTMP,FLV).这里的HTTP和FLV的区别在于HTTP是要从服务器脚本中读取视频流,而不是直接从FLV文件上获得.
  • setStart:开始播放指定的视频.
  • updateLoaded:读取并广播当前加载的FLV的百分比.
  • updatePosition:读取并广播播放头的位置和剩余时间
  • setPause:暂停当前播放的文件
  • setStop:停止播放视频,并清除数据
  • setVolume:设置音量
  • setStreamObject:新建一个NetStream对象.
  • playKeyframe:从关键帧的位置处开始播放

MP3Model

jw flv player MP3Model类图

MP3Model的属性

  • mediatypes:可以处理的文件类型(mp3,rbs)
  • soundObject:声音实例
  • soundClip:绑定声音用的
  • loadInterval:加载定时器
  • currentLoaded:当前已加载的百分比
  • positionInterval:监视播放头
  • soundDuration:声音长度
  • currentState:当前状态
  • currentVolume:当前音量

MP3Model的方法

  • MP3Model:构造函数,先调用父类的构造函数,然后初始化绑定声音的 MC.
  • setStart:播放声音
  • updateLoaded:更新下载的百分比
  • updatePositino:更新播放头位置
  • setPause:暂停.
  • setStop:停止.并清除声音对象.
  • setVolume:设置音量

ImageModel

jw flv player ImageModel类图

ImageModel的属性

  • mediatypes:支持的文件格式(jpg,gif,png,swf)
  • ImageLoader:加载器
  • imageClip:图片容器
  • imageLength:图片或SWF的时间长度
  • positionInterval:监视播放头
  • currentState:当前状态
  • isSWF:是否是SWF文件

ImageModel方法

  • ImageModel:g构造函数.先调用父类的构造函数.imageLength是从设置参数中获得的.
  • setStart:开始播放
  • updatePosition:更新播放头
  • setPause:暂停播放
  • setStop:停止播放