Как реагировать, когда внешне проигрываемый FLV достигает N-го кадра или процента? - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть этот пользовательский видеоплеер, который я делаю. Мне нужен какой-то способ реагирования, когда воспроизводимый извне flv-файл достигает определенной точки в фильме, без встраивания некоторых дополнительных данных в flv-файл. Я ищу это, потому что я хочу реагировать на 90% -99% фильма, потому что мне не нравилось поведение, которое я испытываю, когда реагирую, когда поток завершает воспроизведение (я хочу немного раньше). Как мне этого добиться?

Я удивлен, что Adobe не задокументировала, какова структура объекта, передаваемая в такие вещи, как onMetaData и onCuePoint ...

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

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

var endpoint:Number = flvPlayer.metadata.duration*.95; //95% of the video length
flvPlayer.addASCuePoint(endpoint, "endpoint");

flvPlayer.addEventListener(MetadataEvent.CUE_POINT, registerCuePoints);

function registerCuePoints(myEvent:MetadataEvent) {
    if(myEvent.info.name == "endpoint") {
    // you've reached your cue point, not something embedded in the video.
    }
}
1 голос
/ 08 апреля 2011

Вы можете достичь этого с небольшой математикой.Положение игровой головки, деленное на длительность, умноженное на 100.

Если значение больше 90, запустите ваше событие.

((p / d) * 100)
...