Flash a3 - остановка в ключевой точке

У меня есть FLV VID и динамически установить точку метки

vid.addASCuePoint(1, "cuePoint1");

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

import fl.video.*;
//etc etc 
vid.addEventListener(fl.video.VideoEvent.READY, flvPlayback_ready);
vid.addEventListener(MetadataEvent.CUE_POINT, flvPlayback_cuePoint);

function flvPlayback_ready(evt:fl.video.VideoEvent):void {
vid.addASCuePoint(1, "cuePoint1");
vid.play();
}


function flvPlayback_cuePoint(evt:MetadataEvent):void {
    vid.pause();
    trace("CUE POINT!!!");
    trace("\t", "name:", evt.info.name); // name: cuePoint1
   trace("\t", "time:", evt.info.time); // time: 1
   trace("\t", "type:", evt.info.type); // type: actionscript

}

2 ответа

Решение

Контрольные точки могут быть добавлены в видео двумя способами: 1) закодированы в собственное видео 2) добавлены с помощью actioncript

У меня нет ссылок на соответствующую документацию, но я имел дело с этой проблемой раньше. В материалах, которые я прочитал, говорится, что добавление ключевых точек с помощью ActionScript будет не таким точным, как их кодирование в видео.... и ваш код указывает, что именно так вы их добавляете...

Хотелось бы, чтобы у меня были для вас лучшие новости, но единственный способ узнать больше, который я знаю, это добавить ключевые точки во время кодирования.

Вероятно, это связано с количеством ключевых кадров, в которые был закодирован flv (я думаю, что по умолчанию это число равно 1 на 30 кадров при кодировании с MediaEncoder).

Попробуйте перекодировать flv и установить для параметра Key Frame Distance что-то меньшее (или даже встроить ключевой кадр с помощью Media Encoder вместо добавления его с помощью ActionScript).

Другие вопросы по тегам