在Flash中播放flv视频

 采用ActionScript3.0脚本实现flv视频的播放,需要用一系列类的协作:
你需要一个NetStream对象来加载视频和控制视频的播放;
然而NetStream类只处理流动数据,它并不处理数据的显示,因此需要一个Video对象使用NetStream数据在屏幕上显示视频。
NetStream类的构造函数需要一个NetConnection对象作为参数,该对象决定视频数据的来源,如果Flash Video来自一个Flash Communication Server或Flash Media Server,则NetConnection对象要指向对应的服务器。但是,如果是边下载边播放,那么用一个null连接字符串即可。

创建连接对象:

var  videoConnection:NetConnection  =   new  NetConnection(  );
videoConnection.connect(
null );

创建数据流管理对象:

var videoStream:NetStream  =   new  NetStream(videoConnection);

创建video对象并显示:

var  video:Video  =   new  Video(  );
addChild(video);

关联数据流: 

video.attachNetStream(videoStream);

开始播放:

videoStream.play("example.flv"); 

调整音量:

用NetStream对象的soundTransform属性来调整音量;

播放时间:

用NetStream对象的time属性来获取视频已经播放的时间,从开始播放开始经过的时间,以秒为单位,并且该属性是只读的,不能修改。

读取视频时长:

在NetStream中不提供直接的时长属性,而在flv文件的文件中有duration数据段提供时长信息。在NetStream对象加载flv文件时会自动调用onMetaData()方法,然后一般在onMetaData方法中读取flv文件中的相关信息。下面代码用trace语句在调试窗口输出时长信息。

 控制播放点:

用NetStream对象的seek()方法,根据提供的参数定位视频的播放位置,但是在实时下载过程中设置的参数不能超过缓冲的数据长度。

 缩放视频:

Video对象的videoWidth和videoHeight是只读属性,返回当前视频的显示大小,要修改其大小可以通过改变Video对象的width和height属性来实现。

设置缓冲:

用NetStream对象的bufferTime属性来设置视频播放前应该缓冲的视频长度,即必须在缓冲够bufferTime的数据后才会开始播放。如果不设置,则默认设置为0.1s。bufferLength是NetStream的一个只读属性,返回已经缓冲的数据长度,因此用bufferLenght/bufferTime来显示已经缓冲的比率。NetStream对象的bytesLoaded和bytesTotal属性来显示视频文件已经下载的总长。

添加滤镜效果:

用Video对象的filters属性来设置视频的显示效果。

暂停:

用NetStream对象的pause()函数来暂停播放。

停止:

用NetStream对象的close()函数来停止播放,默认会清楚缓存,如果要再次播放就要再次下载,然而如果浏览器缓存有数据则可能播放的是浏览器缓存的内容,如果要重新下载播放可以采用如下方法:

videoStream.play("video.flv?uniqueIndex=" + (new Date(  )).getTime(  ));

清除显示:

当你关闭一个NetStream对象时,video对象并不会自动清除屏幕显示而会一直保留最后一帧图像,只有在删除Video对象或调用Video对象的clear()方法后才会清除屏幕。

var client:Object = new Object(  );
client.onMetaData = function(metadata:Object):void {
    trace(metadata.duration);
};
videoStream.client = client;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值