我在将 MOV 文件加载到 Flash 9 中时遇到问题。当我用谷歌搜索这个问题时,我得到很多人说确定你可以做到,但没有人提供工作示例代码。
2 回答
以下来自http://en.wikipedia.org/wiki/Adobe_Flash#Flash_Video
闪光视频
Flash 视频(.flv 文件)是一种容器格式,这意味着它本身不是视频格式,但可以包含其他格式。Flash 中的视频采用 H.263 编码,从 Flash player 8 开始,它也可以采用 VP6 编码。音频为 MP3。由于 Flash Player 8 和 Flash Player 9 的大量采用率,VP6 的使用在许多公司中很常见。 [16]
2007 年 8 月 20 日,Adobe 在其博客上宣布,随着 Flash Player 9 的更新 3,Flash Video 也将支持 MPEG-4 国际标准。 [31] 具体来说,Flash Player 将支持以 H.264 (MPEG-4 Part 10) 压缩的视频、使用 AAC (MPEG-4 Part 3) 压缩的音频、MP4、M4V、M4A、3GP 和 MOV 多媒体容器格式 (MPEG- 4 第 14 部分),3GPP 定时文本规范(MPEG-4 第 17 部分),它是一种标准化的字幕格式和对“ilst”原子的部分解析支持,它是 iTunes 用于存储元数据的 ID3 等效原子。Adobe 还宣布,由于流式传输 H.264 时 FLV 结构的功能限制,他们将逐渐从专有的 FLV 格式转向标准 MP4 格式。
package com.yourdomain.packageName
{
import flash.display.Sprite;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
public class DocumentClass extends Sprite
{
private var _video:Video;
private var _nc:NetConnection;
private var _ns:NetStream;
public function DocumentClass():void
{
_video = new Video(800, 600);
addChild(_video);
_nc = new NetConnection();
_nc.connect(null);
_ns = new NetStream(nc);
_video.attachNetStream(_ns);
_ns.play("path/to/file.extension");
}
}
}
- 这是一个非常基本的实现,不包括元数据的处理。
首先,我们实例化一个 800 宽和 600 高的 Video 对象,并将其添加到显示列表中。
其次,我们实例化一个 NetConnection 对象并调用它的 connect 方法,传递 null 作为参数。(这是必需的)
第三,我们创建一个 NetStream 对象,将之前创建的 NetConnection 对象传递给它的构造函数。
第四,我们将 Video 对象的 attachNetStream 设置为 _ns,即我们实例化的 NetStream。
最后,我们调用 NetStream 对象的播放方法 _ns,并将其传递给我们的媒体所在的位置。(FLV/F4V/MOV/等)
希望这可以帮助。
与任何 FLV 相同,使用 NetStream(我不推荐它,它很难处理)或您可以找到的任何 AS3 视频播放组件,如 FLVPlayback 等......只要您的目标是 FP 9.0.115.0,并且该文件以 h264 和 MPEG-4 容器(如 mov、mp4、f4v 等)编码...