Синхронизация проблем с несколькими flvs - PullRequest
1 голос
/ 05 июня 2010

Можно ли синхронизировать FLV-видео? Я играю несколько видео одновременно, и они не синхронизированы. Если я добавлю кнопку, которая ищет все видео в 0, они могут или не могут быть синхронизированы. Когда они не синхронизированы, это только доля секунды, но для этого приложения доля секунды очень заметна. Можем ли мы получить синхронизацию с точностью до кадра?

Для справки вот урезанный код для воспроизведения видео. (Это просто стандартный вызов netstream)

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);
};

Нажатие на кнопку перезапускает видео, иногда синхронно, иногда нет.

Есть ли способ последовательно синхронизировать их?

Спасибо

1 Ответ

0 голосов
/ 03 марта 2011

Вы можете рассмотреть возможность приостановки обоих видео до тех пор, пока событие состояния «NetStream.Seek.Notify» не сработает для обоих видео. Он срабатывает, когда видео завершает поиск нужного временного кода.

...