Chromecast示例发送器应用程序CastHelloText chrome在尝试获取会话时以错误结束



我在启动类似于示例CastHelloText chrome的Google Cast应用程序时遇到问题。出于特定目的,我稍微修改了示例代码。创建此应用程序的目标是直接在Chromecast设备中发送和显示图像数据

特别是官方示例和我的代码之间的区别在于消息格式及其内容,由发送方应用程序发送。Sender应用程序获取由base64编码的png图像,并通过具有自定义名称空间的消息总线发送。接收器应用程序获取此消息,并将其用作html对象<img>的数据源。

当我执行以下步骤时出现错误:

  1. 重新加载发件人页面,检查控制台是否找到任何设备
  2. 只需在输入框上按回车键即可发送表单(忽略文本)
  3. 现在,Chromecast扩展的弹出窗口显示。接下来有两种情况:

    3a)我通过从列表中选择一个来确认铸造到设备,然后我在控制台中收到这个错误消息:

    onError:{"code":"channel_error","description":"error:Timeout","details":null}

    3b)我只是点击了其他地方,我得到了这个错误:

    onError:{"code":"cancel","description":"User closed popup menu","details":null}

    这两个错误都是由调用chromehellotext.html中161行的函数chrome.cast.requestSession引起的,但我不知道到底出了什么问题。

当我步进发送方脚本时,我意识到函数sessionListener从未被调用。我知道当代码尝试调用chrome.cast.requestSession时会出现问题,其中所描述的错误会引发。所以,若我错过了使用Google-Cast API的正确方法,或者若这个问题和网络问题有关,我需要帮助。

接收器应用程序在Google Cast SDK开发者控制台上注册,我正在注册的设备上测试一些序列号。我使用的是42.0.2300.2版本的谷歌浏览器canary(64位)和40.0.2214.111版本的Chrome(我想目前是稳定的)。为了测试,我还试图完全关闭Windows防火墙,但没有成功。

编辑:有一些语法错误导致了上述错误消息。

您似乎正在尝试使用数据/控制通道发送图像;请不要那样做;该信道不用于大型数据通信;事实上,它不能发送任何接近或超过64k的内容。如果您的目标是从本地机器发送图像,则需要在本地机器上运行本地web服务器,并通过web服务器提供图像。

对于最简单的教程,您可以查看本教程。本教程对此进行了很好的解释。Chromecast Sender应用程序

没有必要自己维护会话。只需添加按钮,即可享受铸造

mCastManager.addMediaRouterButton(mediaRoutebtn);

我找到了问题的根源。接收器代码中有一些错误——语法和运行时错误,所以我必须承认我的代码不起作用。现在,它在启动应用程序和获取会话方面发挥作用。

不幸的是,Chromecast扩展生成的错误消息与实际错误不匹配——至少当我不知道接收器端到底发生了什么而无法调试代码时,这有点令人困惑。

最新更新