【发布时间】:2015-04-14 18:02:48
【问题描述】:
我在尝试向 chromecast 接收器发送第二个视频时收到 session_error LOAD_CANCELLED。
我正在尝试实现一个自定义接收器来从我的网站投射视频。 此时应用程序工作正常,所有消息都按预期交换,但如果我有视频投射,由于上述错误,我无法将第二个视频加载到接收器上。
根据文档,这是预期行为 (https://developers.google.com/cast/docs/reference/receiver/cast.receiver.media.ErrorType#.LOAD_CANCELLED)。
静态 cast.receiver.media.ErrorType.LOAD_CANCELLED
当 LOAD 请求被第二个传入 LOAD 取消时返回 请求
但是,我检查了许多其他更简单的应用程序,它们在播放第二个视频时都完全相同:从发送者那里再调用一次 Load,它可以按预期工作。
这是我覆盖的onLoad:
/* Start onLoad event processing */
Receiver.prototype.mediaOnLoadEvent_ = function(event) {
console.debug('Receiver.js: mediaOnLoadEvent_()');
var playListener = function(e) {
document.removeEventListener('video-READY', playListener);
// BUILDING MEDIAINFO and METADATA HERE
// .....
// .....
console.debug('Receiver.js: sending load complete');
this.mediaManager_.setMediaInformation(mediaInformation, true, {});
this.mediaManager_['mediaOrigOnLoad'](event);
}.bind(this);
document.addEventListener('video-READY', playListener);
window.CustomPlayer.loadVideo(event.data.media.contentId,
event.data.currentTime, function({});
};
这是我在发送第二个 LOAD 请求时在控制台中收到的消息:
[ 86.580s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"LOAD\",\"requestId\":54589218,\"sessionId\":\"1B476387-AE78-4F07-BD06-A8CFEF4509A0\",\"media\":{\"contentId\":\"2365405980\",\"streamType\":\"BUFFERED\",\"contentType\":\"\"},\"autoplay\":true,\"currentTime\":0}","namespace":"urn:x-cast:com.google.cast.media","senderId":"243:client-50611"} cast_receiver.js:13
[ 86.585s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message cast_receiver.js:13
[ 86.591s] [cast.receiver.MediaManager] MediaManager message received cast_receiver.js:13
[ 86.595s] [cast.receiver.MediaManager] Dispatching MediaManager load event cast_receiver.js:13
[ 86.602s] [cast.receiver.MediaManager] Sending error message to 243:client-50611 cast_receiver.js:13
[ 86.606s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"243:client-50611","data":"{\"requestId\":54589182,\"type\":\"LOAD_CANCELLED\"}"} receiver.js?v=0.2:117
Receiver.js: mediaOnLoadEvent_()
如您所见,我的mediaOnLoadEvent 在load_cancelled 事件发送后被调用,所以我无能为力。
谢谢。
【问题讨论】: