我想使用 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 传输流中的所有单个流,看看它是纯音频、纯视频还是混合。