如何在闪存中嵌入flv并使用AS3播放?

时间:2012-05-14 07:30:39

标签: actionscript-3 flash

我想创建一个包含多个视频的ipad应用程序。所有视频都必须嵌入闪存中,因此不需要流式传输。我可以通过这种方式在时间轴上嵌入flv,但是还有其他一些方法可以控制回放,使用Actionscript引用库中的视频对象或者在AS中使用嵌入式标签 - 这样我就可以获得更多的控制权并访问提示点。

1 个答案:

答案 0 :(得分:8)

你必须嵌入文件并附加NetStream字节:

[Embed(source = "movie.flv", mimeType = "application/octet-stream")]
public var bytes:Class;

public var video:Video = new Video(640, 480);

public function Main():void {

    addChild(video);

    var nc:NetConnection = new NetConnection();
    nc.addEventListener(NetStatusEvent.NET_STATUS , onConnect);
    nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR , trace);


    var metaSniffer:Object=new Object();  
    nc.client=metaSniffer;
    metaSniffer.onMetaData=getMeta;
    nc.connect(null);
}

private function getMeta (mdata:Object):void {
    video.width=mdata.width/2;
    video.height=mdata.height/2;
};

private function onConnect(e:NetStatusEvent):void {
    if (e.info.code == 'NetConnection.Connect.Success') {
        trace(e.target as NetConnection);
        var ns:NetStream = new NetStream(e.target as NetConnection);

        ns.client = {};
        var file:ByteArray = new bytes();
        ns.play(null);

        ns.appendBytes(file);
        video.attachNetStream(ns);
    }

}