可以投射或流式传输(Android-Chromecast)本地文件吗?

Posted

技术标签:

【中文标题】可以投射或流式传输(Android-Chromecast)本地文件吗?【英文标题】:It is posible to cast or stream (Android-Chromecast) a local File? 【发布时间】:2015-11-10 01:24:08 【问题描述】:

我正在开发一个小音乐播放器,我正在尝试将当前歌曲投射到 Chromecast。我的应用程序基于文件夹,因此我将 mp3 或 flac 文件作为歌曲进行管理。

我正在关注this Google Developers 教程,并且我已经使用 Media Chanel 编写了我的 android Sender。如果我这样做,上传到 Dropbox 的歌曲会在我的电视上成功播放。

    MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MUSIC_TRACK);

    MediaInfo mediaInfo = new MediaInfo.Builder(
    "https://dl.dropboxusercontent.com/u/56292608/MySong.mp3")
    .setContentType("audio/mp3")
    .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
    .setMetadata(mediaMetadata)
    .build()

mRemoteMediaPlayer.load(mApiClient, mediaInfo, true)

有什么方法可以转换或流式传输文件以设置 URL?

我尝试:

Uri.fromFile(myFile).toString()

但我无法发送文件。有什么方法可以从本地文件路径构建 MediaInfo 对象引用?如果没有,是否有任何简单的方法可以从本地路径创建流并将此流发送到 Chromecast?

在其他情况下,用另一种方法直接从设备传输多媒体声音会更好吗?

谢谢大家

【问题讨论】:

关于如何做到这一点的任何更新? 【参考方案1】:

这是可能的。我遇到的大多数方式涉及:

    在 Android 设备上创建准系统 HTTP Web 服务器。 使用网络服务器将 Chromecast 直接从您的手机流式传输。 然后,Web 服务器将文件流式传输到 Chromecast。

【讨论】:

嗨克诺索斯。真的需要所有这些工作来简单地思考吗?是否有任何示例或教程可以逐步尝试此操作? 即,如果用户点击“下一步”按钮,我应该将歌曲上传到我自己的服务器,然后将此服务器连接到 chromecast,然后提供歌曲??这有点疯狂,不是吗? 全部在本地完成。基本上,您在 Android 设备上使用 NanoHTTP 之类的东西启动服务器。您的 Android 设备上的视频位于 /sdcard/ 或类似位置。您告诉 Chromecast 连接到 your.android.internal.ip/name.of.video.mp4。您的 Android 设备 HTTP 服务器打开视频文件并将其发送到 Chromecast。 Chromecast 都知道,它正在播放来自 Internet 服务器的文件。但是,它只是您的本地 Android 设备。

以上是关于可以投射或流式传输(Android-Chromecast)本地文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将屏幕内容流式传输到 Chromecast

投射音频流时投射设备冻结

如何将 .MP4 文件等本地文件流式传输到 Chrome Cast?

是否可以通过 RTMP 或 RTP 流式传输到 Twilio 视频 API

使用 Node.js HTTP API 或 Websockets 流式传输数据?

我们可以在 ios 应用程序中进行 RTMP 流式传输吗?