本地网络上的 Chromecast

Posted

技术标签:

【中文标题】本地网络上的 Chromecast【英文标题】:Chromecast on a local network 【发布时间】:2014-06-05 22:33:58 【问题描述】:

我很难理解用于在本地网络上投射的 chromecast 的初始设置。我想测试我在业余时间开发的媒体服务器应用程序。后端是一个索引服务器,我希望能够将媒体从我的浏览器投射到电视上。

我申请并支付了访问开发人员控制台的费用,该控制台允许我注册 chromecast 设备的序列号。然而,下一步似乎是要求我注册一个 URL 并发布应用程序。

这个应用程序是沙盒的,将在本地网络上运行,所以我不明白这一步。当我尝试在 github 上运行示例应用程序时,当我尝试将链接传递到服务器上的本地媒体文件(任何格式)时遇到问题。

这些错误包括“Cast API 不存在”或浏览器出现白屏。任何已在其本地网络上成功设置 API 以进行投射的人是否会解释如何进行此初始配置。具体来说,如果您在本地(192.168.x.x)网络上运行(是否需要 https?)并在其中一台机器上运行服务器(在这种情况下为 Tomcat),您为自定义接收器提供 URL 和(我猜)发件人。

谢谢你...

J

【问题讨论】:

Chromecast 设备需要一个指向媒体的 URL。如果您希望内容在您自己的网络中,您必须在您的网络上运行一个服务器并指示 chromecast 从该本地服务器加载媒体。你可能想看看这个项目:github.com/googlecast/cast-support-media-server 以获得一些想法 以上项目丢失。如果我找到了,我会更新链接。 对于任何感兴趣的人,似乎可以在这里找到该 repo github.com/mgile/cast-support-media-server 【参考方案1】:

    您需要注册您的设备,以便您的 Chromecast 设备可以使用或不使用 SSL 访问接收器应用程序,无论是在本地还是在 Internet 上。 (HTTP 和 HTTPS)

    接收者应用是一个 html 文件(receiver.html 或您选择的任何名称),并且您在使用 Google 开发者控制台生成 AppID 时注册了它的 URL (http://192.168.x.x/whatever.html)。

    使用上面第 2 步中的 AppID,将其放入本机应用程序(ios 等)

    然后您的原生应用使用 Google API 搜索、连接并与连接的投射设备进行一些握手。

    由于 AppID,连接的投射设备知道从哪里/什么 URL 获取接收器应用程序 (http://192.168.x.x/whatever.html)

    其余的取决于您使用本机应用程序执行的操作。

    如果您想在本地网络上托管媒体资源,则需要一个 Web 服务器等。这是您的发送方应用程序(本机应用程序)与连接的投射设备通信并将其发送到任何资源的 URL。

最后一点:您的投射设备从 Google 获得了 AppID 列表及其对应的接收器应用 URL。

希望对您有所帮助。

编辑:资源 URL 不必是 SSL。

【讨论】:

【参考方案2】:

这也让我感到困惑。但我终于发现你需要在本地托管接收器,然后使用像 ngrok 这样的工具/服务来公开它。 这在本教程的第 3 步中进行了解释:

https://codelabs.developers.google.com/codelabs/cast-receiver/index.html?index=..%2F..index#2

要点是这样的,很可能可以使用其他工具以其他方式完成,但这是根据教程:

npm install -g http-server
npm install -g ngrok
cd app-done // This is the directory on your machine with the receiver app (like index.html etc)
http-server

启动上面的http服务器后,记下使用的端口。可能是 8080。

在调用 ngrok 时使用该端口。

ngrok http 8080

记得让 http-server 和 ngrok 运行。 Ngrok 会给你一个公开的 URL,这个 URL 实际上会访问你的本地 http 服务器,指向你的接收者。

旁注,这仍然困扰着我(如果您知道答案,请随时发表评论):即使我们可以通过这种方式使用本地接收器,我们抛出的任何 URL到这个接收者仍然总是全球 URL,即我们永远不能使用来自域的本地媒体,其 IP 被主机文件中的本地 IP 替换等。所以我们总是必须使用生产(公开可用)媒体。我真的很想找到一种解决方法。但是我们可以使用本地范围内的 IP 地址,例如 10.101.xxx.yyy 等)

【讨论】:

以上是关于本地网络上的 Chromecast的主要内容,如果未能解决你的问题,请参考以下文章

Chromecast 播放电脑本地视频

Chromecast 播放电脑本地视频

为啥 chromecast 需要互联网?

如何将本地文件流式传输到 Chromecast?

本地 Chromecast 接收器未加载

从 iOS 应用程序向 Chromecast 发送本地图像时出现问题