转自: http://livedocs.adobe.com/flash/9.0_cn/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001034.html
Flash CS3 文档 | |||
学习 Adobe Flash 中的 ActionScript 2.0 > 使用图像、声音和视频 > 关于使用 FLV 视频 | |||
关于使用 FLV 视频
FLV 文件格式包含用 Flash Player 编码以便于传送的音频和视频数据。例如,如果您有 QuickTime 或 Windows Media 视频文件,便可使用编码器(如 Flash 8 视频编码器或 Sorensen Squeeze)将该文件转换为 FLV 文件。
Flash Player 7 支持用 Sorenson Spark 视频编解码器编码的 FLV 文件。Flash Player 8 及更高版本支持用 Flash 中的 Sorenson Spark 或 On2 VP6 编码器编码的 FLV 文件。On2 VP6 视频编解码器支持 Alpha 通道。不同的 Flash Player 版本支持 FLV 的方式也不同。有关详细信息,请参阅下表:
编解码器 | SWF 文件版本(发布版本) | Flash Player 版本(回放所需要的版本) |
---|---|---|
Sorenson Spark | 6 | 6 及更高版本 |
| 7 | 7 及更高版本 |
On2 VP6 | 6 | 8* 及更高版本 |
| 7 | 8 及更高版本 |
| 8 及更高版本 | 8 及更高版本 |
*如果 SWF 文件加载 FLV 文件,则您可以使用 On2 VP6 视频,但只要用户使用 Flash Player 8 及更高版本查看 SWF 文件,您就必须面向 Flash Player 8 及更高版本重新发布 SWF 文件。Flash Player 8 及更高版本支持发布和回放 On2 VP6 视频。
有关视频基础知识的信息(如流、渐进下载、尺寸、编码、导入和带宽考虑),请参阅《使用 Flash》。
本部分讨论如何在不用组件的情况下使用 FLV 视频。您也可以使用 FLVPlayback 组件播放 FLV 文件,或使用 VideoPlayback 类创建可动态加载 FLV 文件的自定义视频播放器(请参阅 www.adobe.com/devnet/flash 或 www.adobe.com/support/documentation/ )。有关如何通过 FLVPlayback 组件和 Media 组件使用 FLV 视频的信息,请查看《ActionScript 2.0 组件语言参考》中的 FLVPlayback 组件和 Media 组件部分。
您可以在 Flash Player 中使用 ActionScript 动态地播放外部 FLV 文件,而不将视频直接导入到 Flash 创作环境中。可以从 HTTP 地址或从本地文件系统播放 FLV 文件。若要播放 FLV 文件,可以使用 NetConnection 和 NetStream 类以及 Video 类的 attachVideo()
方法。有关详细信息,请参阅《ActionScript 2.0 语言参考》中的 NetConnection
、NetStream
和 attachVideo(Video.attachVideo 方法)
。
您可以通过将视频导入 Flash 创作工具然后导出为 FLV 文件,来创建 FLV 文件。如果有 Flash,可以使用“FLV 导出”插件从支持的视频编辑应用程序中导出 FLV 文件。
使用外部 FLV 文件可以提供使用导入的视频时不可用的某些功能:
- 无需降低回放速度就可以在 Flash 文档中使用较长的视频剪辑。可以使用缓存内存 的方式来播放外部 FLV 文件,这意味着可以将大型文件分成若干个小片段存储,对其进行动态访问,这种方式比嵌入的视频文件所需的内存更少。
- 外 部 FLV 文件可以和它所在的 Flash 文档具有不同的帧速率。例如,可以将 Flash 文档帧速率设置为 30 帧/秒 (fps),并将视频帧速率设置为 21 fps。与嵌入的视频相比,此项设置可使您更好地控制视频,确保视频顺畅地回放。此项设置还允许您在不改变现有 Flash 内容的前提下以不同的帧速率播放 FLV 文件。
- 通过外部 FLV 文件加载视频文件时不需要中断 Flash 文档回放。导入的视频文件有时可能需要中断文档回放来执行某些功能,例如,访问 CD-ROM 驱动器。FLV 文件可以独立于 Flash 文档执行功能,因此不会中断回放。
- 对于外部 FLV 文件,为视频内容加字幕更加简单,这是因为您可以使用事件处理函数访问视频的元数据。
提示
若要从 Web 服务器加载 FLV 文件,则可能需要向您的 Web 服务器注册文件扩展名和 MIME 类型;请查看您的 Web 服务器文档。FLV 文件的 MIME 类型是 video/x-flv。有关详细信息,请参阅为 FLV 文件配置服务器 。
有关 FLA 视频的详细信息,请参阅以下主题:
学习 Adobe Flash 中的 ActionScript 2.0 > 使用图像、声音和视频 > 关于使用 FLV 视频 > 动态播放外部 FLV 文件 | |||
动态播放外部 FLV 文件
您可以在运行时加载 FLV 文件,并在 SWF 文件中播放。可以将这些文件加载到视频对象或诸如 FLVPlayback 之类的组件中。下面的示例演示如何在视频对象中播放名为 clouds.flv 的文件。
在 Flash 文档中回放外部 FLV 文件:
- 创建一个名为 playFLV.fla 的新 Flash 文档。
- 在“库”面板(“窗口”>“库”)中,从“库”弹出菜单中选择“新建视频”。
- 在“视频属性”对话框中,命名视频元件并选择“视频”(受 ActionScript 控制)。
- 单击“确定”以创建一个视频对象。
- 将该视频对象从“库”面板拖到舞台上,以创建视频对象实例。
- 使视频对象在舞台上保持选中状态,在“属性”检查器(“窗口”>“属性”>“属性”)中的“实例名称”文本框中键入 my_video 。
- 在时间轴中选择第 1 帧,然后打开“动作”面板(“窗口”>“动作”)。
- 在“动作”面板中键入以下代码:
this.createTextField("status_txt", 999, 0, 0, 100, 100);
status_txt.autoSize = "left";
status_txt.multiline = true;
// 创建一个 NetConnection 对象
var my_nc:NetConnection = new NetConnection();
// 创建一个本地流连接
my_nc.connect(null);
// 创建一个 NetStream 对象并定义一个 onStatus() 函数
var my_ns:NetStream = new NetStream(my_nc);
my_ns.onStatus = function(infoObject:Object):Void {
status_txt.text += "status (" + this.time + " seconds)/n";
status_txt.text += "/t Level: " + infoObject.level + "/n";
status_txt.text += "/t Code: " + infoObject.code + "/n/n";
};
// 将 NetStream 视频输入信号附加到 Video 对象
my_video.attachVideo(my_ns);
// 设置缓冲时间
my_ns.setBufferTime(5);
// 开始播放 FLV 文件
my_ns.play("http://www.helpexamples.com/flash/video/clouds.flv");
- 选择“控制”>“测试影片”来测试该文档。
有关预加载 FLV 文件的信息,请参阅第 507 页上的“预加载 FLV 文件”。有关将 FLV 视频动态加载到组件中的信息,请参阅《组件语言参考》。有关 FLV 文件和服务器、FLV 文件以及在 Macintosh 上本地播放 FLV 文件的信息,请参阅为 FLV 文件配置服务器 。