问题标签 [google-cast-sdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
307 浏览

ios - 如何获取所有可用的 Chromecast 设备?

我想为自定义 Chromecast 按钮添加一个操作。

我可以使用带有默认操作的默认按钮 ( GCKUICastButton )。

但我需要使用可以与 Chromecast 连接的设备列表创建自己的视图。

如何获取所有可用的 Chromecast 设备?

0 投票
1 回答
412 浏览

ios - Chromecast 视频不会自动播放 m3u8 文件

我使用 Google示例来处理 Chromecast。

使用 mp4 文件是正确的。

但是如果我想使用m3u8格式,视频将无法开始播放。

如果我将视频快退 10 秒,它就会开始播放。但从 0 到 9 秒后退时不播放,即使您在前进前快退超过 10 秒。

这是我的代码:

0 投票
0 回答
193 浏览

ios - Chromecast GCKDiscoveryManager 列出了设备选择对话框中不存在的设备

我在 iOS 应用程序中遇到问题,Chromecast 接收器设备即使在从网络中删除和/或关闭电源后仍保留在设备选择列表中。

它通常显示断开连接设备的实际名称,但有时 chromecast 对话框屏幕会继续列出名为“访客设备”的设备,尽管没有其他 Chromecast 设备连接到网络。当用户尝试连接到此设备时,他们无法连接,因为该设备实际上并不存在。

看起来这与之前从网络中删除的设备的条目相同,并且可能是 SDK 处理这种情况的方式。

每当显示设备选择对话框时,我都尝试调用 GCKDiscoveryManager::startDiscovery 方法,但在调用 deviceAtIndex 或检查 deviceCount 时,discoveryManager 仍会返回虚拟设备。

还有其他人遇到这种情况吗?我已经更新到 SDK 版本 4.3.5

这是 SDK 本身的问题,还是我可以采取其他措施强制刷新?

重现步骤:

  • 确保网络中有 Chromecast 可以连接
  • 启动应用程序
  • 断开 Chromecast 与网络的连接
  • 等待 5-10 秒
  • 点击应用程序中的投射按钮
  • 请注意,断开连接的设备或“访客设备”仍会列出
0 投票
0 回答
63 浏览

java - 如何在 Google 幻灯片之类的应用中使用 Cast SDK

所以我一直在研究一种幻灯片/幻灯片应用程序。我一直在尝试找出 Cast SDK 是否适用。理想情况下,我想投射一个片段(就像幻灯片一样),让导航栏(RecyclerView)只对演示者可见。

据我所知,Cast SDK 只支持媒体格式。但是,我想知道幻灯片在这种情况下是如何工作的?它将每张幻灯片转换为 JPG 或类似的东西吗?

我发现我可以扩展CastPresentation类,但是如果我想转换一个已经扩展了 Fragment 的 Fragment 怎么办?

任何帮助表示赞赏。谢谢!

0 投票
0 回答
130 浏览

swift - skipNext skipPrevious Google Cast 灰显

因为它涉及如何在 Swift 中添加/使用 GCKMediaQueue?我在 AppDelegate 上添加了跳过按钮,它们确实出现在扩展的控制器屏幕上。但是它们是灰色的。如果我让视频结束,那么它将播放队列中的下一个。但是为什么按钮是灰色的呢?这通常意味着它们无法使用。但是我有 50 个视频在队列中,所以我错过了什么?

0 投票
2 回答
3388 浏览

chromecast - Chromecast 是否支持从 Reddit 投射视频?(HLS 和 Dash 视频)

使用 URL http://192.168.xx.xx:8080/3hyw7hwoajn21/HLSPlaylist.m3u8 调用代理 使用 URL http://192.168.xx.xx:8080/3hyw7hwoajn21/HLS_540_v4.m3u8 调用代理 使用 URL http://调用代理192.168.xx.xx:8080/3hyw7hwoajn21/HLS_AUDIO_160_K_v4.m3u8 使用 URL http://192.168.xx.xx:8080/ 3hyw7hwoajn21/HLS_224_v4.m3u8 调用代理

这是 Reddit 视频示例:https ://www.reddit.com/r/me_irl/comments/b3vrs4/me_irl

浏览JSON,它有几个视频源选项:

虽然我似乎可以让其他 HLS/m3u8 视频与 Chromecast SDK 一起工作(例如Google 自己的示例 HLS 视频),但我似乎无法让这些资源中的任何一个工作。

我试过https://v.redd.it/3hyw7hwoajn21/HLSPlaylist.m3u8将流类型设置为“实时”或“缓冲”,我已经尝试将内容类型设置为“application/x-mpegURL”,并且我对内容类型为“application/dash+xml”的破折号 URL https://v.redd.it/3hyw7hwoajn21/DASHPlaylist.mpd进行了同样的尝试,但也无济于事。我发现这个问题似乎表明了某种可能性?

我还注意到 DASH 文件有一个单独的视频和音频流( https://v.redd.it/3hyw7hwoajn21/DASH_720https://v.redd.it/3hyw7hwoajn21/audio)最坏的情况是一种在 Chromecast 上也播放单独的音频流来播放视频流的方法?

Chromecast 不能播放这些视频类型吗?

更新

Jesse 和 aergistal 认为这与缺少 CORS 标头有关。我构建了一个自定义接收器应用程序,以便能够获得更好的调试日志,这确实是(第一个)问题;Chromecast 抱怨 CORS。

我使用 nginx 构建了一个本地反向代理,它添加了所有 CORS 标头,然后我给 Chromecast 提供了该代理 URL,这个 CORS 错误就消失了。

但是,使用 HLS/m3u8 链接它仍然不会流式传输。现在它抱怨以下内容:

[cast.player.hls.PackedAudioParser] 在 0 处找不到 ID3 和 ADTS 标头

[cast.player.api.Host] 错误:cast.player.api.ErrorCode.NETWORK/315

[cast.receiver.MediaManager] 加载元数据错误:错误

完整日志:

在此处输入图像描述

这导致它仍然无法播放。有任何想法吗?

添加 CORS 问题允许加载 DASHPlaylist.mpd 变体(以前不会),这很好,但同时也不是很好,因为反向代理要求您首先下载整个响应,以及 DASH URL 的位置只是一个完整的 MP4(而 HLS 是字节范围)这意味着反向代理必须先下载整个 DASH 视频才能显示它,这与 HLS 相比需要很长时间。

因此,由于速度的原因,让 HLS 工作仍然是最佳选择,但由于 Chromecast 上的播放问题,它是否注定无法工作?

0 投票
1 回答
201 浏览

chromecast - With the Google Cast iOS SDK (Chromecast) is it possible to have a video with a separate audio stream?

I have an MP4 URL with only video and a separate audio track for it. I can play one or the other by changing the "main" stream URL and the corresponding content-type, but I want both, not one or the other obviously.

There is a core URL at (silly video) https://v.redd.it/3hyw7hwoajn21/DASHPlaylist.mpd

You can get the MP4 video only with audio at https://v.redd.it/3hyw7hwoajn21/DASH_720 and its corresponding audio track is at https://v.redd.it/3hyw7hwoajn21/audio

If I play the MP4 with the iOS SDK it works fine, but no audio:

So I try to add in the audio track before calling build(), attempting to follow the documentation here:

But the result is the same: no audio.

Am I doing this wrong?

0 投票
1 回答
291 浏览

google-cast - Android 开始投射到从自定义投射对话框中选择的设备

我已经设置了一个自定义 Cast Dialog 并使用以下方法添加它:

我的自定义对话框使用以下代码检索可用的投射设备并将它们显示为列表

我怎样才能开始投射到CastDevice从上面的列表中选择?

0 投票
2 回答
2632 浏览

chromecast - 为什么 Chromecast 无法流式传输此 HLS 视频?“未找到 ID3 和 ADTS 标头”/错误 NETWORK/315

我正在尝试通过发件人应用将一些 URL 流式传输到我的 Chromecast。它们是 HLS/m3u8 URL。

这是一个这样的示例 URL:https://qa-apache-php7.dev.kaltura.com/p/1091/sp/109100/playManifest/entryId/0_wifqaipd/protocol/https/format/applehttp/flavorIds/0_h65mfj7f,0_3flmvnwc, 0_m131krws,0_5407xm9j/a.m3u8

然而,尽管其他 HLS/m3u8 URL 正常工作,但它们似乎从未在 Chromecast 上加载(有效的 HLS 流示例)。

它与 CORS 无关,因为它们确实具有正确的 CORS 标头。

我注意到他们在根 HLS 清单文件中有单独的音频组。

当我将它连接到自定义接收器应用程序时,我得到以下日志:

在此处输入图像描述

相关位是(我认为):在 0 和 cast.player.api.ErrorCode.NETWORK/315 处都找不到 ID3 和 ADTS 标头(我相信这是第一个的结果)

这些是完全有效/有效的 HLS URL。它们可以在 iOS 和桌面上的 Safari 以及 VLC 中完美播放。

我需要做些什么(在我的发送者应用程序或我的接收者应用程序中)以启用诸如音轨之类的东西吗?文档似乎表明了这一点

我还发现了这个谷歌问题,一个人有类似的问题,但以某种我无法理解的方式解决了它。https://issuetracker.google.com/u/1/issues/112277373

如何在 Chromecast 上正确播放此 URL?我要在代码中做点什么吗?

0 投票
2 回答
698 浏览

chromecast - 如何对自定义 Chromecast Receiver 应用程序进行基本自定义?喜欢在加载时设置背景图像?

我有一个带有最基本代码的自定义 Chromecast 接收器应用程序:

它有效,但非常难看。当您点击投射时,应用程序会在加载时显示“MyCustomReceiver”(我的接收器的名称)。我更喜欢为正在加载的内容提供启动画面或缩略图。或者甚至只是删除粗略的“MyCustomReceiver”文本。

我查看了自定义 UI 文档

--playback-logo-image它说您可以使用自定义 UI等关键字。

我试试这个:

什么都没发生。我希望它会显示为页面下方的徽标。

我尝试将其设置为--buffering-image. 也没有运气。

我应该如何定制这个?