Chromecast 接收器应用程序 - 媒体状态已更改:time_progress 事件

Posted

技术标签:

【中文标题】Chromecast 接收器应用程序 - 媒体状态已更改:time_progress 事件【英文标题】:Chromecast Receiver App - Media state changed: time_progress event 【发布时间】:2013-10-22 21:20:19 【问题描述】:

在测试我的 Receiver 应用程序并查看控制台时,我看到 cast_receiver.js 创建的一行内容:

[  3.034s] [cast.receiver.RemoteMedia] Media state changed: time_progress=false

最终,当视频播放时,我收到一条消息:

[  3.034s] [cast.receiver.RemoteMedia] Media state changed: time_progress=true

是否有我可以从 RemoteMedia API 监控的事件允许我绑定到这个“time_progress”事件?我试图在视频加载时隐藏和显示加载器。目前我根据视频元素中的“timeupdate”事件显示和隐藏加载程序,但是,该事件已被证明对我来说不可靠。

谢谢

【问题讨论】:

【参考方案1】:

与其尝试附加到上面的状态消息,不如只附加到video media element 的playing 事件。

【讨论】:

我之前试过这个,只是再次测试以确保。视频元素“正在播放”事件会在视频开始加载后立即触发,但视频播放仍需要一段时间。我目前正在收听“timeupdate”事件并在“timeupdate”第一次更改后删除加载程序。问题是有时视频会加载并播放第一帧,然后再次加载,所以我的加载器不见了,但视频仍在加载。我所看到的唯一能准确显示视频播放时间的东西是 time_progress 消息。有什么想法吗?【参考方案2】:

在发送方,如果 time_progress 发生变化,您将获得状态更新。在接收方,如果 time_progress 更新,您不能直接注册以收到通知,但如果绝对需要,有办法解决。正如 Les 所说,监听视频元素的事件是最好的方法。

【讨论】:

【参考方案3】:

迈克,我曾经遇到过类似的问题,我在 time_update 侦听器中使用了一个计数器,以基本上跟踪在移除微调器之前调用 time_update 的次数。通常我发现2-4个电话,然后你可以确定视频正在播放。一旦计数器达到它的目标,我就会从监听器中移除监听器。缺点是您必须在视频暂停等任何时候重新连接听众。

【讨论】:

谢谢。我现在将当前时间从 'timeupdate' 事件四舍五入到最接近的小数点 10 位,并将其与上一个 'timeupdate' 当前时间(也四舍五入)进行比较,这似乎有效,但最终是一项工作-围绕视频播放器事件未在正确时间触发。我仍然更喜欢实际的视频播放器事件,但除非我听到有人知道这一点,否则必须这样做。

以上是关于Chromecast 接收器应用程序 - 媒体状态已更改:time_progress 事件的主要内容,如果未能解决你的问题,请参考以下文章

从接收器获取基于帧的时间码 (Chromecast)

切换音轨时是不是可以阻止 Chromecast 自定义媒体接收器发出许可请求?

如何将我的自定义接收器 chromecast(CAF)的媒体播放器更改为另一个播放器

chromecast 自定义接收器 - 播放列表在没有“onLoad”动画的情况下推进媒体

为 Chromecast 设置加载图标

Chromecast 自定义接收器播放器卡在 IDLE 状态并且没有响应