在糟糕的网络条件和流失败期间,我想在一段时间后重试流,并尝试在网络中断之前它失败的相同位置恢复它。
我有一个基于参考接收器应用程序(https://github.com/googlecast/Cast-Player-Sample)的接收器应用程序。我试图通过保存发送者发送的最后一个加载请求来模拟发送者加载请求,并使用相同的请求调用我的onLoad侦听器,但当我想要重新开始流时,调用更新后的"currentTime“。
这似乎工作得很好,只是它总是从头开始,忽略currentTime设置。
在特定时间点重启接收方应用程序(不需要发送方应用程序触发)上的流的正确方法是什么?
我使用的是Cast接收器v2.0.0,媒体播放器库v1.0.0,自适应比特率流(平滑流)和PlayReady数字版权管理。
发布于 2015-02-18 05:17:40
使用Player.load方法的initalTime参数似乎工作得很好。https://developers.google.com/cast/docs/reference/player/cast.player.api.Player#load
例如,通过load命令中的currentTime值显式设置initialTime (https://developers.google.com/cast/docs/reference/messages#Load)
我之前没有注意到load方法的可选initialTime参数,因为引用接收器应用程序没有使用它(但仍然通过其他一些不明显的机制在给定的时间启动)。
因此,我实际上要做的是保存最后一个load命令,然后侦听主机对象(https://developers.google.com/cast/docs/reference/player/cast.player.api.Host#onError)上的网络错误(code = 3,https://developers.google.com/cast/docs/reference/player/cast.player.api.ErrorCode#.NETWORK),并使用更新后的currentTime重播最后一个load命令。您可以在超时后、当media元素耗尽其视频缓冲区或响应网络重新连接事件(您必须自己创建)时执行此操作。
https://stackoverflow.com/questions/28540763
复制相似问题