1

flv ビデオを同期することはできますか? いくつかのビデオを同時に再生していますが、一貫性がなく同期がずれています。すべてのビデオを 0 にシークするボタンを追加すると、同期している場合とそうでない場合があります。それらが同期していないときは、ほんの一瞬ですが、このアプリケーションでは、ほんの一瞬が非常に目立ちます。フレーム精度の同期を取得できますか?

参考までに、ビデオを再生するための簡略化されたコードを次に示します。(これは単なる標準のネットストリーム呼び出しです)

var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns1:NetStream = new NetStream(nc);
vid_1.attachNetStream(ns1);
ns1.play("vid1.flv");
ns1.pause();
ns1.seek(0);
ns1.addEventListener(NetStatusEvent.NET_STATUS, netstat);

var ns2:NetStream = new NetStream(nc);
vid_2.attachNetStream(ns2);
ns2.play("vid2.flv");
ns2.pause();
ns2.seek(0);
ns2.addEventListener(NetStatusEvent.NET_STATUS, netstat);

function netstat(stats:NetStatusEvent) {
 //trace(stats.info.code);
}
var netClient:Object = new Object();
netClient.onMetaData = function(meta:Object){
              //trace(meta.duration);
      };

ns1.client = netClient;
ns2.client = netClient;

ns1.resume();
ns2.resume();

そして、私はボタンを持っています:

btn_play.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
 ns1.seek(0.0);
 ns2.seek(0.0);
};

ボタンをクリックすると、ビデオが再起動します。同期している場合もあれば、同期していない場合もあります。

それらを一貫して同期させる方法はありますか?

ありがとう

4

1 に答える 1

0

両方の動画で「NetStream.Seek.Notify」ステータスイベントが発生するまで、両方の動画を一時停止することを検討してください。ビデオが意図したタイムコードの検索を終了すると起動します。

于 2011-03-03T04:35:55.357 に答える