巧用FlashMx2004打造个性化Flv文件控制器

2012-07-09 10:11秦红兵俞生成
中国现代教育装备 2012年20期
关键词:视频流缓冲区播放器

秦红兵 俞生成

FLV,英文名称为Flash Video,是当前网络视频的主流媒体格式,目前被众多在线视频网站采用,土豆,新浪搜狐,优酷,56等知名网站都利用它代替了原有的WMV流媒体文件,它是基于sorenso公司的算法基础上开发出来的,以体积小,质量优等显著特征成为目前增长最快,传播最广的视频格式。它的出现有效补充了网络视频点播系统的需要。目前flash播放器种类繁多,但因其界面的单一性,并不能够真正满足我们课堂实际需要,很多视频播放器在播放Flv文件时,对文件内的原有交互都不能够正常显示,特别是Flv文件普及是在牺牲一定质量的基础之上,如同MP3代替CD被广泛应用一样。如果后期控制系统再打折扣,将对Flv技术的效果产生一定的置疑。其实我们可以利用FlashMx2004自己手动打造个性化Flv文件控制器,并在视频流中增加适当的交互,以满足我们在日常教学中的需要。在利用FlashMx2004制作控制器过程中,我们有两种方法可以选择,一种是通过其自带的playback组件来制作播放器,另外一种是通过自己创建元件,利用脚本语句来实现Flv控制器的播放。在本章节中我们选择脚本语句控制,以视频控制的停止,播放,暂停三个按钮作为播放器的交互对象,一个动态文本,用于显示缓冲区装载进度,以及一个用于显示图像的视频组件。

一、Flv播放器雏形设计

(1)打开FLashMx2004软件,如图1所示,单击图中右上角标签,新建对应的元件,首先我们需要创建3个交互按钮,分别命名为pause,play,stop,再分别将其以实例形式拖到舞台中央。

图1

(2)添加一个动态文本,用于显示缓冲区的装载进度,并赋予实例名为VideoText。

(3)参考图1,在舞台场景中添加一个视频元件实例,并赋予其实例名ShowVideo。

二、Flv播放器代码编译

新建一图层,或选择原有一图层改名为Action,选择第一帧如图2所示,F9调出动作代码面板,执行下列对应操作:

图2

(1)播放器代码的编译是整个播放器设计的关键步骤,代码编译的成功与否,决定了播放器是否能够控制嵌入影片的交互,首先在动作面板中,按顺序输入以下语句,如图3所示:

图3

在该段代码中,首先创建了一个jygzFLVConnection对象,再通过connect()方法打开了一个流连接,调用NetConnection对象,同时在调用connect()方法时传递给它一个null值作为参数。创建一个NetStream对象jygzFLVStream,并通过“jygzFLVStream=new NetStream(jygzFLVConnection);”这行代码来实现,它的本质是起到消息传递的作用,将流连接告知对方,如果连接到没有使用服务器的Flv文件,即把实例对象作为参数,传递给构造函数NetStream,之后,把myFLVStream“流”捆绑到Video对象jygzVideo。再以秒为单位指定一个缓冲时间,通过NetStream类的setBufferTime()方法实现,“告知”缓冲区中要装载多少数据才可实现播放。

(2)播放交互按钮的脚本实现。

在动作面板中,按如图4所示输入相应代码:

图4

播放交互按钮是整个控制器的核心,如果设置不当,该播放器与普通播放器无异,而本文设计的播放器除了要有正常的视频流播放暂停功能,还需能够执行原有Flash的交互功能,所以在添加装载视频命令之前,首先需要指定加载的对象是Flv文件。

播放按钮嵌套的代码主要执行装载和播放功能,当满足装载进程后就执行播放程序,并通过代码jygzFLVStream.play("myFLV.f l v")来调用。但有时我们在调用Flv文件时,视频文件可能位于网络上某个位置,不存放在本地服务器上,此时我们可以用file://或http://路径格式来指定Flv文件的存放位置.

播放器在执行播放功能之前,需要先满足调用条件,第四行代码用来检查缓冲区需要装载的总字节与缓冲区中已经装载的字节占的比值。为了缓解使用者等待的心理,我们可以通过设置时间间隔来进行调节。其中bytesLoaded和bytesTotal是NetStream类的两个属性。

(3)暂停交互按钮的代码实现:

此处代码的功能是停止视频流的播放。

三、Flv控制器调试

完成上述步骤后,我们可以将播放器嵌套一个视频流,简单修改后,添加至视频服务器测试,测试这个Flv控制器(http://www.jygz.net/ypjg/sp/qhb)。这里所设计的视频服务器需要安装FMS/RED5协议,如果未安装专门协议,还可采用本地部署方式测试。利用上述方法编译的Flv文件控制器最大特点是避开了传统的flash播放器界面单一,打开Flv文件之后,对文件不能够修改的瓶颈,利用上述代码自己手动打造,既能满足个性化需要,又可以在Flv文件中添加适当的场景,动画,甚至是命令代码,进一步拓宽了该技术应用面,如果我们与非线性编辑软件AE CS3软件相结合,还可以打造出更为交互的三维课件,相信只要我们去努力尝试和不断探索,Flv技术定能为我们所用。

[1]王道乾,刘定智,文俊浩.基于ARM处理器的MP3播放器分析与实现[J].计算机工程与设计,2007(7):1585-1597.

[2]陈志伟.浅析FLV格式在视频点播网站中的应用[J].福建电脑,2010(3):152.

[3]雷钢.F LV视频的制作及教学应用[J].四川文理学院学报,2009(5):99-101.

[4]周东飞.另类流媒体网页HotMedia造[N].中国电脑教育报,2002-08-12.

[5]贺梁,张毅斌,顾君忠.NewsOnDemand——WWW上的多媒体视频技术[J].计算机周刊,1997(21):35-36.

[6]刘华艳.流媒体技术特点及其在网络教学中的应用[J].电脑知识与技术,2010(3):705-706.

猜你喜欢
视频流缓冲区播放器
边缘实时视频流分析系统配置动态调整算法研究
基于视频流传输中的拥塞控制研究
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
基于STM32的MP3播放器设计
串行连续生产线的可用度与缓冲库存控制研究*
Moon ACE播放器/放大器一体机
基于ARC的闪存数据库缓冲区算法①
铁路货场智能大门集装箱全景图像采集方法研究
美国视频流市场首现饱和征兆
播放器背板注塑模具设计