Событие ключевой точки срабатывает, даже если flv приостановлен - PullRequest
0 голосов
/ 09 ноября 2011

Я создал проигрыватель, который загружает видео файлы FLV и воспроизводит их в последовательности. При загрузке видео я извлекаю общее время видео по stream.client.onMetaData = ns_onMetaData; ”, а в событии EnterFrame проверяю, равно ли время воспроизведения видео общему времени. Если время воспроизведения видео равно общему времени, проигрыватель загружает следующее видео. Иногда, даже если видео заканчивается, время воспроизведения и общее время не совпадают. Поэтому, чтобы решить эту проблему, я решил поставить метку события (END) в конце каждого видео FLV. Поэтому всякий раз, когда FLV запускает событие END, проигрыватель удаляет текущее видео и загружает следующее.

Предположим, что общее время видео составляет 44:00. Ключевой момент также в 44:00 в FLV. Поэтому, когда игрок получает событие END из FLV, он загружает следующее. Теперь проблема в том, что если я приостановлю видео в 42:00 и подожду 2 секунды, проигрыватель получит ключевую точку КОНЕЦ и перейдет к следующему видео. Когда я приостанавливал видео, таймер говорит «42:00 из 44:00». Таймер не увеличивается, это означает, что видео фактически приостановлено. Но я до сих пор не понимаю, почему я получаю ключевую точку END, когда видео не достигло времени. Любое предложение ??

1 Ответ

0 голосов
/ 09 ноября 2011

, если вам нужно знать, когда заканчивается ваше видео, добавьте прослушиватель для NetStatusEvent.NET_STATUS и отметьте event.info.code там, это "NetStream.Play.Stop", когда видео останавливается

...