2012-05-14 11 views
4

私はいくつかのビデオでipadアプリケーションを作成したいと思います。すべてのビデオはストリーミングされないように、フラッシュ内に埋め込まなければなりません。ライブでタイムラインにFLVを埋め込むことはできますが、ライブラリにあるビデオオブジェクトを参照するActionscriptやASの埋め込みタグを使用して再生を制御する方法があります。これにより、より多くの制御を得ることができますキューポイントにもアクセスできます。FLVをフラッシュに埋め込んでAS3で再生するには?

答えて

7

あなたはファイルを埋め込むと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); 
    } 

} 
+0

は、ビデオは、このメソッドを使用して再生し完了したときに知る方法はありますか?私はもはやNetStream.Play.Stop NetStatusEventを取得しません。 – Scott

+0

メタデータからビデオの長さを取得し、位置を確認すると、回避策が常に存在することをテストしませんでしたが、イベントが送出されません。 – turbosqel

+0

Not working - 不明なメソッド 'ns.appendBytes()' – rustyx

関連する問題