当外部播放的FLV达到第N帧或百分比时如何反应?

发布于 2024-10-31 06:22:45 字数 226 浏览 1 评论 0原文

我正在制作这个自定义视频播放器。当外部播放的 flv 文件到达电影中的某个点时,我需要某种方法来做出反应,而无需在 flv 文件上嵌入一些额外的数据。我正在寻找这个,因为我想在电影的 90%-99% 点做出反应,因为我不喜欢当流完成播放时我做出反应时所得到的行为(我想要早一点)。我该如何实现这一目标?

我很惊讶 Adob​​e 没有记录 onMetaData 和 onCuePoint 等传递的对象结构是什么......

I have this custom video player I'm making. I need some way to react when the externally played flv file reaches a certain point in the movie without embedding some extra data on the flv file. I am looking for this because I want to react at the 90%-99% point of the movie because I didn't like the behavior I'm getting when I react when the stream completes playing (I want a bit earlier). How do I achieve this?

I'm surprised Adobe didn't document what is the object structure passed on things like onMetaData and onCuePoint...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枕花眠 2024-11-07 06:22:45

你可以通过一点数学来实现这一点。播放头的位置除以持续时间乘以 100。

如果值大于 90,则触发您的事件。

((p / d) * 100)

You can achieve this with a little math. Position of play head divided by duration multiply by 100.

If value is greater than 90 fire your event.

((p / d) * 100)
×纯※雪 2024-11-07 06:22:45

您可以通过根据影片剪辑的长度以编程方式设置提示点,然后为其创建事件侦听器来完成此操作。

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.
    }
}

You can do this by programmatically setting a cue point based on the length the movie clip, then creating an event listener for it.

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.
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文