Android Chromecast自定义命令不起作用
有人能在ChromeCast API中添加自定义命令吗?我成功地让Tictatcoe示例使用我的开发人员ID和修改的协议字符串(在客户端和服务器上都发生了更改) 在Android端,我有一个可用的现有“join”命令,我正在添加一个新的“image”命令: 如果我调用join命令,它工作正常,我可以通过浏览器中的控制台看到记录的消息。但如果调用sendImage函数,则会出现以下错误: “onEnded无法连接通道:协议错误” 在ChromeCast端,我可以看到何时收到有效的命令。当我发送join命令时调用此函数,但当我发送自定义“image”命令时不会调用此函数 有什么想法吗?是否有其他地方需要定义自定义命令 已编辑:同时显示onImage原型:Android Chromecast自定义命令不起作用,android,google-cast,chromecast,Android,Google Cast,Chromecast,有人能在ChromeCast API中添加自定义命令吗?我成功地让Tictatcoe示例使用我的开发人员ID和修改的协议字符串(在客户端和服务器上都发生了更改) 在Android端,我有一个可用的现有“join”命令,我正在添加一个新的“image”命令: 如果我调用join命令,它工作正常,我可以通过浏览器中的控制台看到记录的消息。但如果调用sendImage函数,则会出现以下错误: “onEnded无法连接通道:协议错误” 在ChromeCast端,我可以看到何时收到有效的命令。当我发送jo
/**
* Image event: display an image
* @param {cast.receiver.channel} channel the source of the move, which
* determines the player.
* @param {Object|string} message contains the URL of the image
*/
onImage: function(channel, message) {
console.log('****onImage: ' + JSON.stringify(message));
//Hide video and show image
mVideo.style.visibility='hidden';
mImage.style.visibility='visible';
mImage.src = message.url;
},
这通常意味着您的接收器中存在JavaScript错误。在ChromeCast设备的IP地址的9222端口上打开Chrome,并使用Chrome开发者工具调试问题
您是否在消息处理程序的接收器原型中声明了新函数“onImage”?这通常意味着您的接收器中存在JavaScript错误。在ChromeCast设备的IP地址的9222端口上打开Chrome,并使用Chrome开发者工具调试问题
您是否在消息处理程序的接收器原型中声明了一个新函数“onImage”?是的,我一直在查看chrome开发者工具,并在它接收到join命令时看到控制台消息。当我最初遇到javascript错误时,我会在控制台中看到它们。但是现在,当我发送image命令时,我没有看到任何新的行显示——这就像它没有达到javascript那样远。上面的代码就是我添加接收器原型的地方。你是说还有别的地方吗?我建议你重新启动ChromeCast设备。有时它似乎会缓存旧版本的接收器。此外,在开发者工具设置中启用“保留导航时的日志”,以防接收器因某种原因关闭。我每次更改javascript代码时都重新启动了ChromeCast设备,但没有任何帮助。但几小时后回来,我现在看到“image”命令实际上正在ChromeCast上处理。也许缓存发生在谷歌服务器上?我想ChromeCast设备是直接从我的web服务器上获取的,但可能不是。谢谢你的帮助!是的,我一直在看chrome开发者工具,当它接收到join命令时,我看到了控制台消息。当我最初遇到javascript错误时,我会在控制台中看到它们。但是现在,当我发送image命令时,我没有看到任何新的行显示——这就像它没有达到javascript那样远。上面的代码就是我添加接收器原型的地方。你是说还有别的地方吗?我建议你重新启动ChromeCast设备。有时它似乎会缓存旧版本的接收器。此外,在开发者工具设置中启用“保留导航时的日志”,以防接收器因某种原因关闭。我每次更改javascript代码时都重新启动了ChromeCast设备,但没有任何帮助。但几小时后回来,我现在看到“image”命令实际上正在ChromeCast上处理。也许缓存发生在谷歌服务器上?我想ChromeCast设备是直接从我的web服务器上获取的,但可能不是。谢谢你的帮助!
/**
* Message received event; determines event message and command, and
* choose function to call based on them.
* @param {event} event the event to be processed.
*/
onMessage: function(event) {
console.log('***== pre onMessage ==***');
var message = event.message;
var channel = event.target;
console.log('********onMessage********' + JSON.stringify(message));
console.log('mPlayer1: ' + this.mPlayer1);
console.log('mPlayer2: ' + this.mPlayer2);
if (message.command == 'join') {
this.onJoin(channel, message);
} else if (message.command == 'leave') {
this.onLeave(channel);
} else if (message.command == 'move') {
this.onMove(channel, message);
} else if (message.command == 'queue_layout_request') {
this.onQueueLayoutRequest(channel);
} else if (message.command == 'image') {
this.onImage(channel, message);
} else if (message.command == 'video') {
this.onVideo(channel, message);
} else if (message.command == 'song') {
this.onSong(channel, message);
} else {
cast.log.error('Invalid message command: ' + message.command);
}
},
/**
* Image event: display an image
* @param {cast.receiver.channel} channel the source of the move, which
* determines the player.
* @param {Object|string} message contains the URL of the image
*/
onImage: function(channel, message) {
console.log('****onImage: ' + JSON.stringify(message));
//Hide video and show image
mVideo.style.visibility='hidden';
mImage.style.visibility='visible';
mImage.src = message.url;
},