收藏
回答

innerAudioContext 在 iOS 端延迟严重

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug InnerAudioContext 微信iOS客户端 8.0.18 2.14.4

以上代码是做的一个在 Input 输入框输入时,有键盘音效的功能,播放音效采用了 InnerAudioContext API,但是开发者工具中可以正常播放,但是在 iOS端预览时有非常严重的延迟(数十毫秒),Android端暂时没有测试,请官方看看有没有办法解决。


回答关注问题邀请回答
收藏

2 个回答

  • Demons
    Demons
    2022-10-10

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2022-10-10
    有用
    回复 1
    • 邱大川
      邱大川
      2022-10-12
      我上面说的很清楚呢。


      打开代码片段,在输入框中随便输入什么。分别在开发者工具和 iOS 手机端测试,看控制台输出结果。你会发现 iOS 端播放 InnerAudio延迟非常严重。
      2022-10-12
      回复
  • 邱大川
    邱大川
    2022-10-10

    仔细测试了一下,发现主要是canPlay之前消耗的事件太长了,canPlay之后到真正onPlay,大概只消耗1-5ms。


    另外,感觉 InnerAudioContext 这个设计逻辑也很奇怪,按照一般的理解,在重复播放超短音频(20ms以内)的时候,为了避免在下一次播放的时候由于上一次播放没播放完成导致下一次播放失败的情况,应该是先 innerAudioContext.stop(),然后再innerAudioContext.play()。


    然而事实情况是这样根本不行,反而需要在每一次播放的时候重建InnerAudioContext实例才可以


    当然,延迟的问题是最大的问题,官方看能解决么?




    2022-10-10
    有用
    回复 2
    • Allen's
      Allen's
      2022-11-29
      老铁 你这个解决了吗
      2022-11-29
      回复
    • Allen's
      Allen's
      2022-11-29
      我目前测试的结果是IOS端 音频只要稍微大一点,设置自动播放的时候,结合服务器日志来看 延迟点在于 IOS端需要把整个音频下载 加载到小程序才会开始播放,音频小一点 影响倒不大,上了5M+ 就会比较明显了,怎么着也得要个2到3秒 小程序端把音频下载完了只有才能开始播放
      2022-11-29
      回复
登录 后发表内容