как отобразить сообщение о загрузке, когда swf ищет следующую ключевую точку в видео FLV?

Я создаю интерфейс SWF, который воспроизводит определенные сегменты FLV-видео по запросу. Когда пользователь нажимает определенную кнопку, указатель воспроизведения переходит к предварительно определенному значению startValue.

vid1.playheadTime = startValue;
vid1.play();

Это работает нормально, но иногда требуется много времени, чтобы видео перешло к startValue, и я хочу отобразить сообщение «Идет загрузка, пожалуйста, подождите», пока это происходит.

Я попытался использовать таймеры, чтобы проверить текущее время точки воспроизведения и отобразить сообщение (содержащееся в ролике loading_mc), если оно отличается от времени воспроизведения.

var myTimer:Timer = new Timer(100);
myTimer.addEventListener(TimerEvent.TIMER, video_ready);
myTimer.start();

function video_ready (e:TimerEvent):void{
    if (vid1.playheadTime != startValue){
      loading_mc.visible = true;
}
else { 
      myTimer.stop();
      vid1.play();
      loading_mc.visible = false;
} 

Это отлично работает, если я тестирую его во Flash, но при тестировании в браузере это часто приводит к сбою проигрывателя SWF или, иногда, клип loading_mc не исчезает. Я также считаю, что это может быть не самое элегантное решение. Любые мысли об альтернативном способе справиться с этим?

Большое спасибо.


person gatotkaca    schedule 05.05.2013    source источник


Ответы (1)


На всякий случай, если кто-то наткнется на подобную проблему:

Я обнаружил, что проблема была в формате видео, из-за которого проигрыватель не мог правильно искать видео и хотел полностью загрузить его, прежде чем он сможет выполнять какие-либо функции поиска. Я преобразовал видео в формат F4V, после чего приведенный выше код заработал нормально.

person gatotkaca    schedule 12.06.2013