收藏
回答

安卓播放音频很慢,InnerAudioContext的onCanplay会调用两

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

在安卓真机上,调用createInnerAudioContext拿到InnverAudioContent对象,然后设置src属性,onCanplay会第一次调用。当我调用play方法以后,会停顿大概几秒钟,然后onCanplay会再次调用,然后再调用onPlay。


我怀疑第一次onCanplay是假的(因为实际上当我调用play方法后、还是要等好久啊),第二次才是真的。


具体表现如下:


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

3 个回答

  • 阿峰Sammy
    阿峰Sammy
    2019-08-05

    安卓上同样的问题,影响判断,因为我要告知用户是否音频可以播放了,由于第一次是假的,所以判断不了是否能播放

    2019-08-05
    有用
    回复
  • 是小白啊
    是小白啊
    2018-10-17

    不是很清楚你所描述的问题,提供一下代码片段测试一下(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2018-10-17
    有用
    回复 4
    • Fish
      Fish
      2018-10-18

      代码片段:wechatide://minicode/AQukLfm47f3T


      我重新描述一遍:在安卓真机上创建innerAudioContext时,onCanplay会第一次调用;当play时,onCanplay会第二次调用。

      2018-10-18
      回复
    • 是小白啊
      是小白啊
      2018-10-18回复Fish

      测试是点击一下就可以播放的,安卓

      2018-10-18
      回复
    • Fish
      Fish
      2018-10-18回复是小白啊

      确实点击一下就能播放。我的问题是:安卓上onCanplay会被调用两次,第一次是innerAudioContext刚被赋值上src的时候,第二次是play的时候(第一次onCanplay是假的,事实上并没有准备好播放)。


      而在ios上onCanplay只会调用一次。

      2018-10-18
      1
      回复
    • 是小白啊
      是小白啊
      2018-10-18回复Fish

      反馈收到

      2018-10-18
      回复
  • Fish
    Fish
    2018-10-17

    我的初衷是希望能用预加载来缓存,在ios上是没问题的(onCanplay以后确实能播放了),但是在android是假的啊,即使onCanplay以后、依然不能播放

    2018-10-17
    有用
    回复
登录 后发表内容