在糟糕的网络状况和流式传输失败期间,我想在一段时间后重试该流并尝试在网络中断之前将其恢复到同一位置。
我有一个基于参考接收器应用程序(https://github.com/googlecast/Cast-Player-Sample)的接收器应用程序。我正在尝试通过保存发件人发送的最后一个加载请求来模拟发件人加载请求,并使用相同的请求调用我的onLoad监听器,但是当我想重新启动流时,会更新“currentTime”。
这似乎工作得很好,除了它总是从头开始,忽略currentTime设置。
在特定时间点重新启动接收器应用程序上的流(没有来自发件人应用程序的触发器)的正确方法是什么?
我使用的是Cast receiver v2.0.0,Media Player Library v1.0.0,自适应比特率流(流畅的流媒体)和PlayReady DRM。
答案 0 :(得分:1)
使用Player.load方法的initalTime参数似乎工作正常。 https://developers.google.com/cast/docs/reference/player/cast.player.api.Player#load
即。从load命令(https://developers.google.com/cast/docs/reference/messages#Load)
中的currentTime值自己显式设置initialTime我之前没有注意到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.Host#onError)并重放最后一个加载具有更新的currentTime的命令。您可以在超时后,媒体元素用完视频缓冲区或响应网络重新连接事件(您必须自己创建)时执行此操作。