我尝试使用Android MediaPlayer
播放来自m3u8网址的音频流。
根据客户提供给我的信息,该信息流为AAC encoded stream, 56 kbps, 44.1 KhZ, HE v1 within a HLS container
。
根据给出的信息here,接受m3u8格式:
应用程序现在可以将M3U播放列表URL传递给媒体框架,以开始HTTP Live流会话。媒体框架支持大多数HTTP Live流规范,包括自适应比特率。
根据the doc on supported media formats,也可以接受提供的AAC格式。
该流似乎在Android 4.4.4上正常播放,但我尝试使用较低版本的许多设备都会返回错误(1, -1010)
,即MEDIA_ERROR_UNSUPPORTED
。
我错过了什么?
流文件内容(mydomain.com/mystreamaudio.m3u8)
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:75514
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75514.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75515.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75516.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75517.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75518.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75519.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75520.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75521.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75522.aac
#EXTINF:10.00,
mystreamaudio/Seg_111014_170037_75/mystream_111014_170037_75523.aac
答案 0 :(得分:0)
Android 4.0及更高版本正式支持的第一个#EXT-X-VERSION:3
协议版本3。由于官方文档中提到支持Android 3.0协议版本2。主要区别:版本2不允许浮点段持续时间。
第二,根据规范,每个段必须是MPEG-TS格式(.ts),其中可以包含AAC音频,而不仅仅是AAC容器(.aac)。
在提到的Supported Media formats中:“仅限MPEG-2 TS媒体文件”,这意味着您尝试播放不受支持的m3u8播放列表。要修复它,将每个段编码为mpeg-ts,其中包含AAC音频流。