Flash AS3: управление буфером NetStream - PullRequest
0 голосов
/ 23 февраля 2010

У меня на сцене два видеопроигрывателя FLV, использующих два объекта AS3 NetStream для воспроизведения. Мне нужно синхронизировать два проигрывателя, это означает, что воспроизведение должно начаться, когда буфер заполнен для обоих потоков, и оба должны быть приостановлены, когда один из буферов очищается, ожидая повторного заполнения.

Моя проблема в том, что процесс буферизации второго видео начинается только после полной загрузки первого потока (не только bufferTime = 5 секунд, но и целых 10 минут). Есть ли способ для достижения этого результата, буферизовать 5 секунд от первого потока, затем 5 секунд от второго и т. Д.?

Спасибо

1 Ответ

1 голос
/ 25 февраля 2010

Предположим, вы говорите о прогрессивных потоках ... Вы можете предварительно загрузить их полностью, если это необходимо, и хранить их в памяти до тех пор, пока они вам не понадобятся.

Для этого:

  • netStream.play() чтобы начать загрузку
  • Перехватить событие состояния "NetStream.Play.Start" и напрямую приостановить () поток (загрузка будет продолжена).
  • После этого вам просто нужно проверить bytesLoaded обоих потоков, пока вы не будете удовлетворены количеством данных для их воспроизведения.
...