我想区分使用Google的ExoPlayer从HLS流传入的数据的内容类型。

具体来说,我想区分仅视频和音频内容。

谢谢!

最佳答案

根据Exoplayer文档,该播放器当前根本不支持检测媒体格式:


  ExoPlayer尚未(尚未)自动检测正在播放的媒体的格式。应用程序需要知道它希望播放的媒体的格式,以便构建能够播放它的ExoPlayer。问题#438跟踪了删除此限制的过程。


上面提到的问题链接是:https://github.com/google/ExoPlayer/issues/438

如果可以访问原始流(未加密),则可以自己查看原始流,然后从那里找出是音频还是视频,但这需要做大量的工作:HLS是一种流流MPEG的“流协议” -2传输流,分为多个分段。这些MPEG-2传输流中的每一个都可以包含音频和视频。

MPEG标准(MPEG 1和MPEG 2)使用流ID来标识传输流中的每个单独的音频或视频流。音频流的编号为110X XXXX,视频流的编号为1110XXXX-因此,您可以检查MPEG2传输流中的所有单个流,并查看它是纯音频,纯视频还是混合音频。

10-08 09:11