从android应用程序强制转换m3u8文件

从android应用程序强制转换m3u8文件,android,video,video-streaming,chromecast,google-cast,Android,Video,Video Streaming,Chromecast,Google Cast,我正在尝试使用提供的ChromeCast框架在我的电视上播放视频。因为玩mp4很好。但现在我有了不同的来源。我的服务器上有一个由m3u8文件指向的视频文件。 因此,为了在电视上播放m3u8文件,我使用了以下MediaInfo对象,并为其添加了变体。 我返回的MediaObject是:` return new MediaInfo.Builder(Uri.parse(path).toString()) .setStreamType(MediaInfo.STREAM_TYPE_

我正在尝试使用提供的ChromeCast框架在我的电视上播放视频。因为玩mp4很好。但现在我有了不同的来源。我的服务器上有一个由m3u8文件指向的视频文件。 因此,为了在电视上播放m3u8文件,我使用了以下MediaInfo对象,并为其添加了变体。 我返回的MediaObject是:`

return new MediaInfo.Builder(Uri.parse(path).toString())
            .setStreamType(MediaInfo.STREAM_TYPE_LIVE)
            .setContentType("videos/mp4") //need to know **what should be content-type here**
            .setMetadata(movieMetadata)
            .setStreamDuration(mSelectedMedia.getData().getDuration() * 1000)
            .build();
请指导我在chromecast或电视上播放m3u8文件。
谢谢

首先,我不知道你遇到了什么问题;一定要在你的帖子里写上,这样你才能得到更好的回复。根据您提供的描述,您似乎正在播放指向某些文件的播放列表;如果是这种情况,您不应该将流类型设置为livestream,而应该使用缓冲类型(就像您对简单mp4所做的那样)。第二,你用的是什么接收器?您的接收器应该能够处理m3u8播放列表。如果您使用样式化接收器或默认接收器(或使用我们GitHub repo的参考接收器),那么您应该不会有问题。最后,确保您对视频流使用https(播放列表是必需的)而且您的服务器支持CORS头。

正如@naddaf所建议的那样,CORS存在问题。因此,我只是添加了我的域(gstatic.com和我的另一个域)在我收到媒体请求的服务器上。这一切都开始完美运行。

Ali感谢您宝贵的回复,请您进一步介绍一下接收器。我无法使用接收器设备。不确定我是否需要编写单独的应用程序,然后如何在chromecast设备上调试它?可以I don’我不想看一下,了解一下总体架构,了解构建应用程序需要哪些组件;你需要一个发送方应用程序(你编写的Android应用程序)和一个接收方应用程序(javascript)这在chromecast上运行。你可以使用谷歌提供的接收器,而不是编写自己的接收器。详细信息可以在我前面提到的链接中找到。Naddaf我可以使用默认的接收器应用程序(我没有在chromecast设备上做任何事情),所以不要干预。那么你能告诉我如何在电视上播放这种类型的视频吗其中所有X都表示整数。如果您使用默认接收器,则无需执行任何特殊操作;您只需提供一个MediaInfo,其中包含m3u8文件的url,并且流类型设置为MediaInfo.stream\u type\u BUFFERED。您需要确保您的服务器具有CORS头且url为https。服务器支持g CORS和url也是https,但当我通过它进行播放时,它仍然会开始加载,然后最终不会播放视频。我已将STREAM_类型更改为BUFFERED,内容类型为application/x-mpegURL。但仍然不会播放视频。请注意,我的url以其他几个参数结束,而不仅仅是m3u8。