Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Chromecast自定义命令不起作用_Android_Google Cast_Chromecast - Fatal编程技术网

Android Chromecast自定义命令不起作用

Android Chromecast自定义命令不起作用,android,google-cast,chromecast,Android,Google Cast,Chromecast,有人能在ChromeCast API中添加自定义命令吗?我成功地让Tictatcoe示例使用我的开发人员ID和修改的协议字符串(在客户端和服务器上都发生了更改) 在Android端,我有一个可用的现有“join”命令,我正在添加一个新的“image”命令: 如果我调用join命令,它工作正常,我可以通过浏览器中的控制台看到记录的消息。但如果调用sendImage函数,则会出现以下错误: “onEnded无法连接通道:协议错误” 在ChromeCast端,我可以看到何时收到有效的命令。当我发送jo

有人能在ChromeCast API中添加自定义命令吗?我成功地让Tictatcoe示例使用我的开发人员ID和修改的协议字符串(在客户端和服务器上都发生了更改)

在Android端,我有一个可用的现有“join”命令,我正在添加一个新的“image”命令:

如果我调用join命令,它工作正常,我可以通过浏览器中的控制台看到记录的消息。但如果调用sendImage函数,则会出现以下错误:

“onEnded无法连接通道:协议错误”

在ChromeCast端,我可以看到何时收到有效的命令。当我发送join命令时调用此函数,但当我发送自定义“image”命令时不会调用此函数

有什么想法吗?是否有其他地方需要定义自定义命令

已编辑:同时显示onImage原型:

/**
 * 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;

},