收藏
回答

m3u8格式地址为什么有的能使用背景音乐播放有的却不可以

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.createInnerAudioContext 客户端 6.7.2 2.3.0

- 代码段

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


最后一次编辑于  2018-09-12  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 学习使我快乐
    学习使我快乐
    2018-09-12

    同样是m3u8格式的流,会有什么区别吗

    2018-09-12
    赞同
    回复 2
    • 娇华
      娇华
      2018-09-12

      你好,目前支持的格式有 m4a, aac, mp3, wav

      2018-09-12
      赞同
      回复
    • 学习使我快乐
      学习使我快乐
      2018-09-13

      我们的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是可以播放的


      2018-09-13
      赞同
      回复