我正在制作这个自定义视频播放器。当外部播放的flv文件到达电影中的某个点而不在flv文件上嵌入一些额外的数据时,我需要一些方法来做出反应。我正在寻找这个,因为我想在电影的90%-99%点做出反应,因为我不喜欢我在流完成播放时做出反应时的行为(我想早一点)。我如何实现这一目标?
我很惊讶Adobe没有记录传递onMetaData和onCuePoint之类的对象结构...
答案 0 :(得分:1)
你可以用一点点数学来达到这个目的。游戏头的位置除以持续时间乘以100。
如果值大于90,则会触发您的活动。
((p / d) * 100)
答案 1 :(得分:1)
您可以通过以影片剪辑的长度编程设置提示点,然后为其创建事件侦听器来完成此操作。
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.
}
}