您的位置:首页 > 其它

精通Flex 3.0――4.2.4 动态添加音频和视频——Video类

2008-04-17 10:25 351 查看
在FlashPlayer平台上运行的应用都可以直接引入视频和音频文件。Video类就是用于引入视频文件的类。随着RIA应用的不断发展,基于FlashPlayer平台的视频应用越来越广泛,如全世界最大的视频共享网站www.youtube.com
使用Video类与前面用到的Loader类一样,都需要加载外部的资源。不同之处在于视频的处理方式更加特殊,需要一个特别的连接类NetConnection和一个流处理类NetStream。由于FlashPlayer平台上使用视频方式是流媒体,所以加载视频的时候是一边加载一边播放的。使用Video类创建一个具有视频内容的类的过程如下。
(1)创建一个Flex的项目,命名为“VideoStu”。
(2)打开一VideoStu.mxml文件,更改代码如下所示。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
//导入包
import flash.media.Video;
//指定视频资源所在的位置
private var flexvideoUrl:String="http://chi-v226.chi.youtube.com/get_video?video_id=PCg1SpEan5k";
//定义一个添加视频的函数
private function addVideo():void
{
//定义一个远程连接的类
var connection:NetConnection = new NetConnection();
//这里使用http连接视频,所以连接位置为空
connection.connect(null);
//声明一个流连接的类
var stream:NetStream = new NetStream(connection);
//声明一个视频类,确定视频的大小
var flexVideo:Video = new Video(360, 240);
//视频的来源是流连接
flexVideo.attachNetStream(stream);
//设定流内容的来源
stream.play(flexvideoUrl);
//向舞台上添加视频
stage.addChild(flexVideo);
}
]]>
</mx:Script>
</mx:Application>
在上面的代码中,用到了NetConnection和NetStream类。这两个类是搭配在一起进行使用的。通过这两个类,不但可以添加基于HTTP的视频,还可以通过Adobe公司的服务器端产品进行协作功能的开发。在这个例子中直接使用的是HTTP的视频,所以这里NetConnection连接的是空。NetStream的构造函数要求一个NetConnection对象,所以必须构建一个这样的对象实例。NetStream是向Video提供内容的类。使用NetStream进行对视频内容的连接。
注意:基于FlashPlayer的视频连接目前只支持flv格式的视频。
(3)保存并运行VideoStu项目,效果如图所示。单击舞台后,效果如图所示。


在运行时,加载外部的视频的时候可能需要一部分缓存时间。与看到的Internet上的Flash视频共享应用不同,这个例子显得过于简陋,没有声音控制,没有进度条,也没有播放控制按钮。在后面的章节中,会通过一个组件来实现视频的播放。这个组件本质上也是使用Video类进行控制的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: