小程序 InnerAudioContext 的 坑,播放云存储 文件的坑

好久没写小程序了,最近打开了《微信开发者工具》 发现改版改的挺不错,各种颜色提示,代码自动缩进什么的,差点就让我爱上写小程序了

然而

鹅厂的api果然还是一如既往的坑

在写一个音频播放功能时,

发现,

这样的代码 InnerAudioContext.play();

播放刚录的音没问题,

但是播放 云 存储中的录音 就莫名奇妙出问题了,

模拟器上有时正常,有时会不出声,有时会出个怪声然后静音,

android真机上 直接  errCode:602  not found param, 再按 play 按钮 会出 errCode:55 unkonw format

郁闷好久,只能无奈的笑呵呵。。。

网上找了半天,发现说要用上  innerAudioContext.onCanplay 才不会报错

最终代码如下



//on的监听注意要放在onload,每on一次就多个监听实例
onLoad: function (options) {

  InnerAudioContext.onPlay(() => {   InnerAudioContext.offCanplay()  }); 

    InnerAudioContext.onEnded(() => {  wx.hideLoading()   });//我这里不用 onstop

}

  //注意 重点来了

  //先判断 当前播放地址是否与 将要播放的地址 一致 ,一致时不会回调onCanplay

 if(  InnerAudioContext.src == play_src  ){

    InnerAudioContext.play(); 

   }else{     //不一致时 要用 onCanplay 才不会报错和出奇怪的问题

    InnerAudioContext.src =play_src ;

    InnerAudioContext.onCanplay(() => {  

      InnerAudioContext.play();

    })

   }


重点是,这些东西 在文档里 没有写,

重点是,这些东西 本应小程序自己后台解决的,我们不论播放什么都只用 InnerAudioContext.play(); 就完了 

 最后吐槽一下  win版 微信开发者工具 竟然不能选 模拟器 左右的位置    

顺便再吐槽一个   1年都没改的  文档 bug

https://developers.weixin.qq.com/community/develop/doc/0006cc72970318081c682ff5151800?jumpto=comment&commentid=0004023a9540189f30c982ab4560





后来,经过测试,在手机中报错可能是 开发者工具中的音频格式和手机的不一样。

反正。开发和真机不一致很不爽

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容