收藏
回答

innerAudioContext在ios上同一个音频只能播放一次

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug innerAudioContext.onPlay 客户端 iOS 6.6.5 1.9.1

在ios上播放一次音频后,再次点击播放该音频,无法调用 innerAudioContext.onPlay,在android手机上没有问题。

wxml:

<view class='color-white audio pull-left flex flex-vc' data-url='{{audioUrl}}' bindtap='play2'>

<view class='icon-play2'></view>

<text class='color-white' wx:if="{{audioStatus}}">播放中</text>

<text class='color-white' wx:else>{{duration}}s</text>

</view>


js:

const innerAudioContext2 = wx.createInnerAudioContext()

//预听录音

play2: function (e) {

console.log("预听录音")

var that = this;

innerAudioContext2.autoplay = true

innerAudioContext2.src = e.currentTarget.dataset.url;

},


onLoad: function (options) {

innerAudioContext2.onPlay(() => {

console.log('开始播放')

that.setData({

audioStatus: true,

})

})


innerAudioContext2.onEnded(() => {

console.log('播放结束')

that.setData({

audioStatus: false,

})

})

innerAudioContext2.onError((res) => {

console.log(res.errMsg)

console.log(res.errCode)

})

},

ios真机上打印信息如下图,第一次点击播放执行了,第二次点击播放时没有执行innerAudioContext2.onPlay:



在Android手机上如图所示:



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

3 个回答

  • Special
    Special
    2018-03-27

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

    2018-03-27
    有用
    回复
  • 2018-09-07

    音频后边加个参数就可以了src = 'http://xxx.mp3?t=' + Date.now()

    2018-09-07
    有用 3
    回复 4
    • 程远
      程远
      2022-06-28
      研究了半个月,代表全公司感谢你
      2022-06-28
      回复
    • 溯  源
      溯 源
      2022-09-07
      我也替我公司谢谢你
      2022-09-07
      回复
    • Kylin
      Kylin
      2023-03-22
      奇淫巧技
      2023-03-22
      回复
    • REN.
      REN.
      01-26
      牛掰!
      01-26
      回复
  • Aimee
    Aimee
    2018-03-27

    代码片段 wechatide://minicode/sJ7YCeme63YU

    请用苹果手机测试,点击页面的6s可听语音,再次点击后没有声音


    2018-03-27
    有用
    回复 1
    • 轻语
      轻语
      2018-07-12

      您好!我最近也遇到这个问题了,请问最后解决这个问题了吗?

      2018-07-12
      回复
登录 后发表内容