如何从 Android 应用程序中发现 Roku 设备以进行投射

Posted

技术标签:

【中文标题】如何从 Android 应用程序中发现 Roku 设备以进行投射【英文标题】:How to discover Roku device from within an Android app in order to cast 【发布时间】:2021-03-09 14:48:37 【问题描述】:

我正在开发一个应用程序,其中包含一些可以通过 WiFi 投射到其他设备(如智能电视)的视频内容。

投射到智能电视、android TV 或 Google Chromecast 的逻辑已经实现并且可以正常工作。

Roku 有相同的应用程序,它安装在我的 Roku 设备上,但 android 应用程序根本无法发现此 Roku 设备。它只列出了智能电视,但没有列出 Roku 设备。

我查看了几篇帖子,在我看来 Play Services Cast 库不适用于 Roku。

这些是我在 android 应用程序中使用的强制转换依赖项:

implementation "androidx.mediarouter:mediarouter:1.1.0"
implementation "com.google.android.gms:play-services-cast:16.1.2"
implementation "com.google.android.gms:play-services-cast-framework:16.1.2"

这里有人有从 android 应用程序中投射到 Roku 的经验吗? 是否有适用于 android 的 Roku SDK 使 Roku 在 Android 设备上投射可见? 也许 Roku 设备上的同一个应用程序必须实现一些逻辑才能在 android 上被同一个应用程序发现? 如何做到这一点?

我看到 YouTube 有这个功能,Netflix 和 Spotify 也有,所以我想它可以做到。

【问题讨论】:

【参考方案1】:

可以通过 DIAL(发现和启动)在 Roku 设备上进行投射。与其他平台不同,Roku 设备无需在 DIAL 注册表中注册。如果您希望其他设备可以发现 Roku 应用程序,则在 roku 应用程序清单文件中应该有以下条目 -

dial_title="dial_service_name"

虽然 Roku 具有称为 ECP 的等效实现,但它们支持 DIAL,因为它已被广泛接受并且跨域解决方案进行投射。您可以找到更多详细信息here。您可以从以下链接下载示例应用程序 --

https://github.com/rokudev/samples/blob/master/utilities/RokuDIALSDK.zip

【讨论】:

以上是关于如何从 Android 应用程序中发现 Roku 设备以进行投射的主要内容,如果未能解决你的问题,请参考以下文章

从 Roku 提取带宽日志

如何从颤振应用程序中投射屏幕?

如何向 roku 中的某些服务器发出 api 请求

Chromecast 网络实现细节,并用 roku 复制它

Roku 频道主屏幕上带有搜索按钮的侧边菜单

从 heroku 访问 s3 内容时,AWS 访问密钥显示在浏览器 url 中