收藏
回答

Android系统下InnerAudioContext第一次点击播放无声音

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 play/InnerAudioContext 客户端 Android 6.6.5 1.9.1

使用innerAudioContext  play方法播放语音时Android系统第一次点击无声音,第二次点击可正常播放。iOS系统正常。


第一次innerAudioContext回调方法都正确,就是没声音。第二次点击播放可正常播放,有声音,回调函数与第一次回调流程一致。


var voiceSrc = event.currentTarget.dataset.src; 比较怪异的是这一句代码使用固定的连接地址第一次播放就正常。难道dataset 方式参数变了?从日志打印来看语音文件链接是正确的,可正常下载。

如:

var voiceSrc = 'https://host/audio.wav'; 


API使用方式如下:


// list.js

const innerAudioContext = wx.createInnerAudioContext();


toPlayVoice: function (event) {

  var voiceSrc = event.currentTarget.dataset.src;

// 在这里日志打印 voiceSrc  连接是正确的,浏览器访问可正常下载

 innerAudioContext.src = voiceSrc;

  innerAudioContext.play()

},


onLoad: function() {

//录音的回调写在onLoad就只调用一次

  innerAudioContext.onPlay(() => {

    console.log('开始播放')

  })

  innerAudioContext.onError((res) => {

    console.log("error errMsg" + res.errMsg)

    console.log("error errCode" + res.errCode)

  })


  innerAudioContext.onWaiting(() => {

    console.log("onWaiting")

  })

  innerAudioContext.onCanplay(() => {

    console.log("onCanplay")

  })


  innerAudioContext.onEnded(() => {

    console.log('播放结束');

  })

}


// list.wxml

<template name="receive_get_item_template">

<button type="primary" data-src="{{item.path}}"hover-class='none' bindtap='toPlayVoice'>{{item.duration}}</button>

</template>


最后一次编辑于  2018-03-20  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • Kevin
    Kevin
    2018-03-20

    补充运行日志

    // 第一次点击播放按钮日志

    https://host/audio/oAJ2V5OiO_nfgpZ2Wr0aLIlzZ5xE/2018/03/20/05fe550987da477a835065e0beb88089.wav

    onCanplay

    onWaiting

    onCanplay

    开始播放

    播放结束



    // 第二次点击播放按钮日志

    https://host/audio/oAJ2V5OiO_nfgpZ2Wr0aLIlzZ5xE/2018/03/20/05fe550987da477a835065e0beb88089.wav

    onCanplay

    onWaiting

    onCanplay

    开始播放

    播放结束


    2018-03-20
    赞同
    回复
  • 黄思程
    黄思程
    2018-03-20

    麻烦给个相关的代码片段(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/minicode.html),我们定位下问题

    2018-03-20
    赞同
    回复
  • Kevin
    Kevin
    2018-03-21

    Android第一次播放时,其实是有播放出声音(大概几百毫秒,能听到一点声音),然后就播放结束了,不知道什么原因?iOS系统能播放完整。

    我用分享的代码片段(wechatide://minicode/98d01233f77b1340c6ff4579dfdee6f6)可以播放。

    在项目(/receive/receive-pro.js)中却失败了,能分析是什么原因吗?  谢谢





    2018-03-21
    赞同
    回复