收藏
回答

正常网络音频用 BackgroundAudio播放,很久才回调onCanPlay

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

- 当前 Bug 的表现(可附上截图)

我在使用wx.getBackgroundAudioManager时,在真机上要等待28秒后onCanplay才回调,开发者工具上面是立刻(1秒左右)就可以回调onCanplay的。


1. 我确认我的网络环境没有问题,当我使用浏览器直接访问测试的音频文件时,都是瞬间可以播放的;

2. Android和IOS手机都试过,都会等很久;

3. 我在代码片段里放了两个音频链接:audio_1, audio_2;其中audio_1是可以马上回调onCanplay,audio_2则要等待很长时间,两个文件都在同一个cdn上,没有进行特殊处理;


- 预期表现

在网络正常的情况下,onCanPlay在合理的时间(1~5秒)内回调


- 复现路径

打开我的代码片段则就可以看看到,我已经提供了一个最简实现,可以切换一下audio_1,  audio_2进行测试


最后一次编辑于  2018-11-16  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 是柿子啊
    是柿子啊
    2018-11-16

    这两个链接在安卓的客户端测试也是无法正常打开的,建议检查下链接

    2018-11-16
    赞同
    回复 6
    • 大冲 Daniel
      大冲 Daniel
      2018-11-16

      嗯,这又是一个新问题,我刚刚测试也遇到了:

      1. 这两个链接用浏览器是可以打开播放的;

      2. 我有两台Android机测试三星S8可以立刻播放audio_1。 audio_2要等待28s才能播放;另一台魅族Pro 6等几十秒后会报错,errCode:10004(格式错误),能帮忙解答一下为什么两台手机表现不一致吗?

      3. 还有需要注意的是同样的代码只把getBackgroundAudioManager改成createInnerAudioContext就什么问题都没有了(开发者工具,三星S8,魅族Pro 6都没问题)

      2018-11-16
      回复
    • 晨
      2018-11-16回复大冲 Daniel

      https://myssl.com/cdn.afterclass.cn https证书配置有问题,请排查

      2018-11-16
      回复
    • 大冲 Daniel
      大冲 Daniel
      2018-11-16回复

      你好,证书配置会影响音频播放吗?开发过程中我已经勾选了不校验域名,这样还是会有影响吗?

      如果上述问题回答是‘是的’的话,能不能麻烦把证书问题稍微具体一点?我好告诉后端同事去调整。

      2018-11-16
      回复
    • 大冲 Daniel
      大冲 Daniel
      2018-11-16回复

      请问是需要补全 cdn.afterclass.cn 的证书链吗?是不是这样就可以了?

      2018-11-16
      回复
    • 晨
      2018-11-16回复大冲 Daniel

      不校验域名只是不校验请求是否在在微信后台配置的域名列表内,证书问题会导致请求本身无法成功。


      具体原因和解决方案参考刚才发的链接

      2018-11-16
      回复
    查看更多(1)
  • 大冲 Daniel
    大冲 Daniel
    2018-11-16

    补充一些:如果我使用wx.innerAudioContext来播放音频,同一个文件链接在真机上onCanPlay也是立刻(1s以内)回调的,这也侧面说明了不是我的网络音频文件有问题。


    2018-11-16
    赞同
    回复