- 代码段
var backgroundAudio = wx.getBackgroundAudioManager()
playBack: function () {
backgroundAudio.title = '此时此刻'
backgroundAudio.epname = '此时此刻'
backgroundAudio.singer = '许巍'
backgroundAudio.protocol = 'hls'
backgroundAudio.coverImgUrl = 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg'
// 设置这个地址放不了 但是使用wx.createAudioContext可以播放
backgroundAudio.src = 'http://ihzlh.linker.cc/ihzlh/hnxt_ts01_1042.m3u8'
// 设置这个地址可以播放
backgroundAudio.src = 'http://ali.m.l.cztv.com/channels/lantian/audio08/128k.m3u8'
backgroundAudio.play()
},
-当前 Bug 的表现(可附上截图) 第一个地址播放报10001
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
同样是m3u8格式的流,会有什么区别吗
你好,目前支持的格式有 m4a, aac, mp3, wav
我们的m3u8的数据流是基于HLS协议的,不是只要设置protocol属性就OK吗?
http请求m3u8的url。
服务端返回一个m3u8的播放列表,这个播放列表是实时更新的,一般一次给出几段数据的url。
客户端解析m3u8的播放列表,再按序请求每一段的url,获取ts数据流。
m3u8基本上可以认为就是.m3u格式文件,区别在于,m3u8文件使用UTF-8字符编码。
EXTM3U m3u文件头,必须放在第一行
EXT-X-MEDIA-SEQUENCE 第一个TS分片的序列号
EXT-X-TARGETDURATION 每个分片TS的最大的时长
EXT-X-ALLOW-CACHE 是否允许cache
EXT-X-ENDLIST m3u8文件结束符
EXTINF extra info,分片TS的信息,如时长,带宽等
1、我将getBackgroundAudioManager可使用的m3u8流地址进行请求得到如下结果:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:129962294
#EXT-X-TARGETDURATION:8
#EXT-X-PROGRAM-DATE-TIME:2018-09-13T08:24:45+0800
#EXTINF:8.01
128k/0/00007dcaffaadc71_5cc00ac_10c0c.ts
#EXTINF:8.01
128k/0/00007dcaffaadc71_5cd0cb8_10c0c.ts
#EXTINF:8.01
128k/0/00007dcaffaadc71_5ce18c4_10c0c.ts
2、getBackgroundAudioManager不可用的m3u8流地址请求得到如下结果:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=10000000
https://605804037.cloudvdn.com/a.m3u8?domain=ihzlh.linker.cc&player=SpUAAKsejMzazVMV&streamid=ihzlh%3Aihzlh%2Fhnxt_ts01_1042&v3=1
第二个请求的地址是客户公司自己做的转流,我们没办法要求客户换转流方式,有办法使getBackgroundAudioManager支持这种转流的方式吗?
PS:流地址的原因已排除,因为使用createInnerAudioContext是可以播放的