【问题标题】:VideoCast Sample App on Android does not detect cast deviceAndroid 上的 VideoCast 示例应用程序未检测到投射设备
【发布时间】:2014-03-15 03:16:29
【问题描述】:

在更新谷歌播放服务库等之后,我已经从 github 下载并构建了 CastCompanionLibrary 和 CastVideos-android 示例代码。

我已修改字符串文件以输入我的 AppId。

我在开发者控制台中配置了一个测试设备,并且我还配置了一个应用程序(在本例中是示例视频应用程序),并且我输入了与应用程序的 AndroidManifest.xml 中相同的包名称。

应用程序启动、运行并显示视频列表 - 但似乎没有检测到 chromecast 设备,因为将按钮添加到 ActionBar。

我现在正在尝试发布示例应用程序以查看是否可以修复它,但是到目前为止,按照说明和使用库存示例代码对我不起作用。

我做错了什么?

【问题讨论】:

  • 到目前为止,我可以让 chromecast 设备显示在我编译的示例应用程序中的唯一方法(在修复其他问题之后)是发布应用程序!所以,调查这个白名单问题......

标签: android google-cast


【解决方案1】:

Andrew,您指的是哪个 XML 文件中包含付费服务版本的内容?关于你的问题,我的建议是:

(1) 确保您的设备已为您的应用列入白名单。我想您正在开发控制台上创建一个应用程序 ID 并使用该应用程序 ID。如果您的设备被列入白名单,您应该可以使用 chrome 浏览器在http://<chromecast-ip>:9222 访问它,如果您无法访问,则您的设备未列入白名单。要进行故障排除,请查看 this 帖子。

(2) 在您的设备设置好进行开发后,请确保将应用程序 ID 放在 strings.xml 中。确保您的依赖项设置正确:配套库依赖于支持库 v7 中的 appcompat 和 mediarouter,以及 Play 商店库的 rev 15。 CastVideos-android 仅依赖于配套库。

如果您按照这些步骤操作,那么一切都会正常。

【讨论】:

  • 我完全正确,但还没有检查白名单。我最终发布了我的应用程序,并且已经修复了它。我现在会看看白名单。
  • 引用实际上在AndroidManifest.xml中,在这个元数据标签中: 但该属性在项目中不存在,所以我添加了它。第一次我弄错了,Logcat 吐出一个错误,告诉我使用 4242000 值。
  • 你不应该在你自己的资源中定义它; Google Play 服务库拥有该资源;这就是为什么您在示例项目中找不到它的原因。
  • 你是对的。我想我最初对 play lib 模块中的资源有问题,我在这种情况下通过添加来修复它。后来我从 play lib 项目中修复了资源问题,所以现在不需要了。谢谢!
【解决方案2】:

好的,这是我为使未发布的应用程序工作而必须做的事情的摘要:

  • 仔细检查设备 ID。它很难阅读,有些字符可能是错误的。在光线充足的情况下拍照是个好主意。

  • 在开发控制台(https://cast.google.com/publish/#/overview)中配置设备,注册并等待。后来我不得不重新启动我的 Chromecast 设备(实际上是两次)。我使用了 chromecast 应用程序 (Mac OS X),您可以从这里下载:https://cast.google.com/chromecast/setup

  • 我的 Wi-Fi 性能很差,这导致我的 Android 设备将 WiFi SSID 更改为与 ChromeCast 连接位置不同的一个。最新版本的 Android 似乎测试了响应时间和带宽,然后如果被认为“不稳定”(我让它下载过载)可能会发生变化,并且还有另一个更好的可用。因此,请仔细检查您在 Android 上是否使用了正确的 WiFi。

  • 当然,在开发控制台中配置应用程序并将(区分大小写的)应用程序 ID 传递到 Android res/values 文件夹中 strings.xml 文件中的 app_id 字符串中。

我想就是这样。铸造愉快!

【讨论】:

  • 您还可以从框中获取设备 ID。这就是为什么我总是为盒子上的标签拍照:通常比设备上的标签更易读。
  • 我在盒子上看到的唯一数字与设备 ID 完全不同,并且以“X”(字母)开头,因此根据谷歌而不是设备 ID,它以数字开头(我似乎记得是 3、6 或 8)。
  • 我查看了我为 Chromecast 拍摄的照片,它们都有 2 个条形码;较大的下部条码具有 UPC (81157101357),较小的顶部条码具有序列号。你盒子上的 UPC 是什么?
【解决方案3】:

我遇到了完全相同的问题,演员视频示例应用找不到我的 chromecast,因此它不会在操作栏中显示“演员按钮”。

和你一样,在https://cast.google.com/publish/#/overview 中,我已经使用 Android 平台设置了一个新的 Styled Media Receiver 应用程序,并将包名称设置为:com.google.sample.cast.refplayer

然后我发现了这个:https://developers.google.com/cast/docs/receiver_apps#default 所以我在 onCreate 方法中更改了 CastApplication.java : APPLICATION_ID = CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID;

现在它可以工作了,我可以看到投射按钮并将视频发送到我的 chromecast。 但是我仍然不能使用我自己的应用程序来使用我自己的接收器。

【讨论】:

  • 这意味着您的设备未正确列入您的应用程序的白名单。
  • 是的,谢谢!我按照stackoverflow.com/a/21619494/2765813 此处的说明进行操作,因为我无法使用 http://:9222 访问我的 chromecast,并且未选中 chromecast 应用程序中的“发送序列号”复选框。一旦我这样做并重新启动,我的自定义接收器应用程序就可以工作了!
【解决方案4】:

我从 Cast 开发者控制台 (https://cast.google.com/publish/#/overview) 发布了我的应用程序,这似乎已经解决了问题。

顺便说一句:其他人可能对应用 ID 有大写/小写问题,但我没有。

【讨论】:

    【解决方案5】:

    我听取了一些谷歌页面的建议,并近距离拍摄了我的 Chromecast 的照片......带有无法读取的激光蚀刻 ID......

    然后我放大并检查......是的,我的设备 ID 中有一个“8”而不是“B”,这可能导致我的设备没有像 Ali Naddaf 所说的那样被列入白名单。

    我删除了旧设备,并使用正确的设备 ID 创建了一个新设备。然后我必须等待 15 分钟才能注册。

    所以,我在 AndroidManifest.xml 中更改了示例的包名,我在开发控制台中使用该包名创建了一个新的 Android 应用程序,并将新的应用程序 ID 放入代码 (strings.xml) 并重新构建和部署了我的 Android 应用。

    所有这些都不起作用,chromecast 也没有出现......所以现在,使用已发布的应用程序是唯一适合我的方法。

    【讨论】:

    • 您的设备现在是否已列入白名单您可以访问其中的调试端口 9222 吗?如果没有,您将无法使用自己的任何接收器,因此您需要在尝试运行任何应用程序之前先解决这个问题。
    • 似乎我的 WiFi 有点不稳定(或过载),有时我的手机会自动选择与 ChromeCast 所在的接入点不同的接入点。现在一切都好,我也开始使用风格化的媒体接收器了。
    猜你喜欢
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多