wx.innerAudioContext在swiper组件下无法播放,求解
发布于 7 年前 作者 na36 19042 次浏览 来自 问答

使用swiper和swiper-item组件加载动态的mp3文件,然后使用wx.innerAudioContext对动态远程的mp3播放,刚开始swiper第一个可以播放,切换下一个就播放不了,出现10004文件格式错误,mp3文件完整,等待几十秒再点击当前播放按钮,又可以播放了,切换下一个又不能播放。有时候第一个就无法播放,下一个又能播放,下下一个又不能播放,这是官方的bug吗?

wxml 文件:

<swiper interval="{{interval}}" current="{{current}}" circular="true" >

  <swiper-item wx:key="unique" wx:for="{{result}}">

       <view>

<image class="icon" bindtap="play" data-url="{{item.mp3}}" src="..."></image>

       </view>

   </swiper-item>

</swiper>

js文件:

play: function(e){

  var innerAudioContext = wx.createInnerAudioContext();

  var url = e.currentTarget.dataset.url

  setTimeout(() => {

innerAudioContext.src = url

innerAudioContext.play();

  },200)

  innerAudioContext.onEnded((res) => {

console.log("正常停止播放",res)

  })

}

3 回复

@左岸枫景 试过了,设置延迟也没用

你的问题解决了吗 我是

先调用的this.audioPlayer.stop();

然后在延迟播放里面设置的自动播放 不调用play()方法试试

如果你解决的话方便告诉我你的思路吗

兄弟 你必须得在swiper change方法里面设置一个延迟1秒播放才可以 可能是微信的bug。。。。

回到顶部