使用Android的MediaPlayer播放m3u8音频流问题

时间:2014-12-12 12:40:09

标签: android android-mediaplayer m3u8

我尝试使用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

1 个答案:

答案 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音频流。