从Chromecast接收器应用重新启动HLS流?

时间:2014-05-12 19:36:00

标签: http-live-streaming chromecast google-cast

我正在使用Chromecast自定义接收器,它使用Media Player Library来播放HLS流。有时,创建流的代码转换器会在尝试加载该媒体段时导致媒体库崩溃。

虽然我无法直接对流或Chromecast设备做任何事情,但我一直在尝试在cast.api.player.Host对象的onError处理程序的客户接收器中添加解决方法。

在流中寻找未来似乎不起作用,因为它始终生成“Uncaught InvalidStateError:尝试使用不可用或不再可用的对象。”来自媒体库的错误。看起来初始错误会破坏源处理程序中的某些内容。

通过在onLoad()对象上手动调用cast.receiver.MediaManager,从头开始加载流(使用更新的currentTime值)似乎确实有效;在崩溃点之后,流开始再次播放。

// try to skip over the error
playPosition += 10.0;
console.log("attempting to seek to position: "+ playPosition);

// reuse the original load event with two changes:
// 1. the new start point is the position we want to "seek" to
loadEvent.data['currentTime'] = playPosition;

// 2. force autoload to begin playback as soon as possible
loadEvent.data['autoplay'] = true;

// fire the event
MediaManager.onLoad(loadEvent);

// what now?

问题是连接的发件人无法控制这个新的媒体会话。发件人尝试停止,暂停或寻求导致此警告的结果:Unexpected command, player is in IDLE state so the media session ID is not valid yet

从接收方开始播放流的正确方法是什么,以便通知发件人?

我正在使用版本2.0.0的cast_receiver.js和0.6.0的media_player.js

0 个答案:

没有答案