我正在尝试为 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
事件以跟踪视频的当前时间?
我分析了声称每 5,10 或 20 秒跟踪一次的 OSMF 的 Google Analytics 插件,但是查看代码,尚不清楚它是如何跟踪当前时间的。