【问题标题】:Restarting a stream on a chromecast receiver application在 chromecast 接收器应用程序上重新启动流
【发布时间】:2015-04-16 22:11:39
【问题描述】:

在网络状况不佳和流式传输失败的情况下,我想在一段时间后重试流式传输,并尝试在网络中断前失败的相同位置恢复它。

我有一个基于参考接收器应用 (https://github.com/googlecast/Cast-Player-Sample) 的接收器应用。我试图通过保存从发送方发送的最后一个加载请求并使用相同的请求调用我的 onLoad 侦听器来模拟发送方加载请求,但当我想重新开始流式传输时更新了“currentTime”。

这似乎工作正常,只是它总是从头开始,忽略 currentTime 设置。

在特定时间点重新启动接收方应用程序上的流(没有来自发送方应用程序的触发器)的正确方法是什么?

我正在使用 Cast 接收器 v2.0.0、媒体播放器库 v1.0.0、自适应比特率流(流畅的流)和 PlayReady DRM。

【问题讨论】:

    标签: chromecast google-cast


    【解决方案1】:

    使用 Player.load 方法的 initalTime 参数似乎可以正常工作。 https://developers.google.com/cast/docs/reference/player/cast.player.api.Player#load

    即从加载命令中的 currentTime 值显式设置自己的 initialTime (https://developers.google.com/cast/docs/reference/messages#Load)

    我之前没有注意到 load 方法的可选 initialTime 参数,因为参考接收器应用程序没有使用它(但仍然通过其他一些不明显的机制设法在给定时间启动)。

    所以我实际上要做的是保存最后一个加载命令,然后在主机对象 (https://developers.google.com/cast/docs/reference/player/cast.player.api.ErrorCode#.NETWORK) 上侦听网络错误(代码 = 3,https://developers.google.com/cast/docs/reference/player/cast.player.api.ErrorCode#.NETWORK)并使用更新的内容重播最后一个加载命令当前时间。您可以在超时后执行此操作,当媒体元素耗尽其视频缓冲区时,或响应网络重新连接事件(您必须自己创建)。

    【讨论】:

      猜你喜欢
      • 2014-06-17
      • 1970-01-01
      • 2014-06-26
      • 2021-02-26
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 2010-09-19
      相关资源
      最近更新 更多