Я пытаюсь создать прокси-плагин для OSMF, который будет служить в качестве плагина аналитики, который отслеживает определенные события. Я хочу отслеживать текущее время видео.
В методе set для прокси-элемента у меня есть следующее:
proxiedElement.addEventListener(MediaElementEvent.TRAIT_ADD, _onTraitAdd);
Затем в методе _onTraitAdd
я присоединяю прослушиватели событий для событий DURATION_CHANGE и CURRENT_TIME_CHANGE.
private function _onTraitAdd(event:MediaElementEvent ):void {
trace("adding trait");
trace(event.traitType);
if (MediaTraitType.TIME == event.traitType)
{
//Get the time trait, so we can handle the duration changed event
var timeTrait:TimeTrait = proxiedElement.getTrait( MediaTraitType.TIME ) as TimeTrait;
timeTrait.addEventListener( TimeEvent.DURATION_CHANGE, _onDurationChanged );
timeTrait.addEventListener( TimeEvent.CURRENT_TIME_CHANGE, _onTimeChanged );
//debug( "Media has a timeline" );
}
}
Первое событие, DURATION_CHANGE
, запускается в начале видео, однако второе событие никогда не запускается.
К какому элементу я должен прикрепить событие CURRENT_TIME_CHANGE
, чтобы отслеживать текущее время видео?
Я проанализировал плагин Google Analytics для OSMF , который утверждает, что отслеживает каждые 5,10 или 20 секунд, однако , глядя на код , неясно, как ему удается отслеживать текущее время.