精通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项目,效果如图所示。单击舞台后,效果如图所示。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/PKI_CA/4.12...4.13.jpg)
在运行时,加载外部的视频的时候可能需要一部分缓存时间。与看到的Internet上的Flash视频共享应用不同,这个例子显得过于简陋,没有声音控制,没有进度条,也没有播放控制按钮。在后面的章节中,会通过一个组件来实现视频的播放。这个组件本质上也是使用Video类进行控制的。
使用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项目,效果如图所示。单击舞台后,效果如图所示。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/PKI_CA/4.12...4.13.jpg)
在运行时,加载外部的视频的时候可能需要一部分缓存时间。与看到的Internet上的Flash视频共享应用不同,这个例子显得过于简陋,没有声音控制,没有进度条,也没有播放控制按钮。在后面的章节中,会通过一个组件来实现视频的播放。这个组件本质上也是使用Video类进行控制的。
相关文章推荐
- 精通Flex 3.0――4.2.3 动态添加按钮——SimpleButton类
- 精通Flex 3.0――4.2.2 动态加载资源——Loader类
- 精通Flex 3.0――4.2.1 动态显示文字——TextField类
- Flex动态添加Web service的result事件函数
- flex 3.0 视频教程
- 转:Centos6.3添加解码器播放MP3和常见视频音频
- 精通Flex 3.0――4.5.1 创建Array
- 精通Flex 3.0——4.6 使用操作XML相关的类
- 精通Flex 3.0――4.6.7 XML的类型转换
- 精通Flex 3.0――4.8.3 Event Listeners事件监听
- 精通Flex 3.0――14.4.4 DataManagement的Flex应用的服务端代码
- 精通Flex 3.0――14.5.4 Message服务的配置
- HTML5 添加视频和音频(响应式视频)
- 精通Flex 3.0--基于ActionScript 3.0实现(预订中,估价)
- 精通Flex 3.0――4.3.6 字符窜替换
- flex动态添加button并添加click事件
- Extjs3.0 checkboxGroup 动态添加
- Flex之旅:第二部分:容器与布局(2)---动态添加组件(TabNavigator)
- ITOO---MVC3.0动态添加表格的行数并Controller中获取添加数据