异常处理——video/audio音视频播放时,没有停止上一个且当前一个也在播放,造成多个文件同时播放

WeChat小程序交流(QQ群:769977169

使用video,或audio组件进行音视频的播放时,点击播放A文件后,再点击B文件进行播放时,可能会造成A、B同时进行播放的情况。造成这种情况的原因是,播放B文件时,没有停止对A文件的播放。

具体解决方法是,在video,或audio组件中绑定事件,并在wxjs文件中完善处理逻辑。代码示例如下:

xxx.wxml文件中绑定事件

<audio ... catchtap='audioPlay'></audio>

<video ... catchtap='videoPlay'></video>

xxx.wxjs文件中实现

audioPlay: function(even) {
    console.log(even)

    // 停止上一个视频的播放
    if (this.videoContext) {
      this.videoContext.pause()
    }
    // 停止上一个音频的播放
    if (this.audioContext) {
      this.audioContext.pause()
    }
    this.audioContext = wx.createAudioContext(even.currentTarget.id, this)
  }

  videoPlay: function (even) {
    console.log(even)
    // 停止上一个音频的播放
    if (this.audioContext) {
      this.audioContext.pause()
    }

    // 停止上一个视频的播放
    if (this.videoContext) {
      this.videoContext.pause()
    }
    this.videoContext = wx.createVideoContext(even.currentTarget.id, this)
  }

猜你喜欢

转载自blog.csdn.net/potato512/article/details/80095728
今日推荐