美文网首页
小程序 InnerAudioContext 的 坑,播放云存储

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

作者: 半亩塘读书会 | 来源:发表于2020-04-15 07:42 被阅读0次

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

    然而

    鹅厂的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

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

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

    相关文章

      网友评论

          本文标题:小程序 InnerAudioContext 的 坑,播放云存储

          本文链接:https://www.haomeiwen.com/subject/skxqmhtx.html