0

    微信小程序video标签如何在其他视频播放时让另一个视频暂停播放-demo

    2023.05.03 | admin | 241次围观

    演示

    需求

    一个页面同时有很多视频播放,当用户点击一个视频后,开始播放视频视频聊天app源代码,当点击另一个视频后,暂停前一个播放视频,让当前页面只有一个视频处于播放状态

    原理

    播放视频时,先判断当前是否有视频正在播放,如果没有视频聊天app源代码,则播放,如果有,则暂停其他视频,再播放当前视频

    源码 wxml

    
      

    js

    Page({
    	/**
       * 页面的初始数据
       */
      data: {
        videos:[
          {
            url:'https://scenicpicture.umituo.com/upload/video/0387064bad8464868ae292c8cb793f86.mp4',
            title:'视频一'
          },
          {
            url:'https://scenicpicture.umituo.com/upload/video/ec341fa007ce6943ed997f5b079ea44b.mp4',
            title:'视频二'
          },
          {
            url:'https://scenicpicture.umituo.com/upload/video/mmexport1645779520102.mp4',
            title:'视频三'
          },
        ],
        indexCurrent: null,
      },
      video_play(e) {
        let curIdx = e.currentTarget.id;
        // 没有播放时播放视频
        // console.log(curIdx)
        if (!this.data.indexCurrent) {
          this.setData({
            indexCurrent: curIdx
          })
          let videoContext = wx.createVideoContext(curIdx,this) //这里对应的视频id
          videoContext.play()
        } else { // 有播放时先将prev暂停,再播放当前点击的current
          let videoContextPrev = wx.createVideoContext(this.data.indexCurrent,this)//this是在自定义组件下,当前组件实例的this,以操作组件内 video 组件(在自定义组件中药加上this,如果是普通页面即不需要加)
          if (this.data.indexCurrent != curIdx) {
            console.log(123)
            videoContextPrev.pause()
            this.setData({
              indexCurrent: curIdx
            })
            let videoContextCurrent = wx.createVideoContext(curIdx,this)
            videoContextCurrent.play()
          }
        }
      },
    })

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论