又来记录了

需求:一个音频或视频播放的时候,除了这个播放的音频或视频,其他的音频和视频都要暂停播放。

思路:

1.首先获取所有的音视频ID,存到一个数组。获取播放的ID。

2.把获取播放的ID从所有的音视频ID中去除,放到differenceSet数组中。

3.用循环挨个把differenceSet中的ID关闭。

*具体的1、2、3实现可在代码中找到

代码:

import React, { Component } from 'react';export default class Test extends Component {constructor(props) {super(props);this.state = {contents: [3, 2, 8],    //button按钮的内容ids: [] //所有button的ID集合}}componentDidMount() {this.setState({}, () => {this.audiod()})}audiod(id) {console.log('id', id);let divid = [id]    //获取播放的ID,必须加数组里,要不然后面includes(x)会报undefined错this.state.ids = [...new Set(this.state.ids)]   //用setState({})好像不管用,先用这个代替let differenceSet = [...this.state.ids].filter(x => !divid.includes(x)) //思路2console.log('newids', differenceSet);if (differenceSet.length > 0) { //思路3for (let i = 0; i < differenceSet.length; i++) {let audioIds = document.getElementById(differenceSet[i])console.log('audioIds', audioIds);/*** 以下是音频的处理,因为我没找到合适的音频做示范,所以就注掉了,视频同理*/// if (audioIds.nodeName === 'AUDIO') {//     if (audioIds.id == id) continue;//     audioIds.pause()// }}}}render() {return (<div>{this.state.contents.map((content, id) => {this.state.ids.push(id) //思路1return (//真正用的时候把button标签删了,把audio标签放开,因为我没找到合适的音频做示范,所以先用button代替<button id={id} onClick={() => this.audiod(id)}>{content}</button>/*** 以下是音频的标签,因为我没找到合适的音频做示范,所以就注掉了,视频同理*/// <audio id={id}//        src={视频的地址}//        onPlay={() => this.audiod(id)}//        controls// />)})}</div>)}
}

大体效果图:(刚开始没点按钮,所以id是undefined,后来依次点的2 2 8 3)

react中一个音频或视频播放的时候其他音视频暂停播放相关推荐

  1. 视频、音频打时间戳的方法及其音视频同步(播放)原理

    https://blog.csdn.net/nine_locks/article/details/48007055

  2. 【Unity】AVPro使用踩坑,编辑器模式使用视频播放正常,打包后视频无法播放的问题

    编辑器模式使用视频播放正常,打包后视频无法播放的问题 这个主要是AVPro的坑 一般使用会直接Browse给取文件路径,然后面板上面就能看到视频文件的名字,这个方法在编辑器模式下播放是可以获取到文件的 ...

  3. html5中加入音频,使用HTML5在网页中嵌入音频和视频播放的基本方法

    HTML5 特性,包括原生音频和视频支持而无需 Flash. HTML5 和 标签让我们给站点添加媒体变得简单.我们只需要设置 src 属性来识别媒体资源,包含 controls 属性让用户可以播放和 ...

  4. html5页面嵌入视频播放,使用HTML5在网页中嵌入音频和视频播放的基本方法

    HTML5 特性,包括原生音频和视频支持而无需 Flash. HTML5 和 标签让我们给站点添加媒体变得简单.我们只需要设置 src 属性来识别媒体资源,包含 controls 属性让用户可以播放和 ...

  5. 仿抖音视频自动播放html,vue 仿抖音视频播放切换

    一.第一部分html页面的准备 {{item.title}} {{item.introduction}} 二.数据说明部分 data() { let u = navigator.userAgent; ...

  6. 安卓自定义视频播放器,有进度条暂停播放等功能

    安卓视频播放页代码 package com.example.test1;import android.content.Context; import android.content.Intent; i ...

  7. 学习笔记(2):基于NDK、C++、FFmpeg的android视频播放器开发实战-音视频基础知识Mpeg4封装格式音视频编码格式讲解...

    立即学习:https://edu.csdn.net/course/play/7417/151027?utm_source=blogtoedu 封装:将音视频从文件中读出来 解码:解压出来,转换成显卡支 ...

  8. matlab调整视频播放速度,教你快速调整视频的播放速度

    原标题:教你快速调整视频的播放速度 今天小编来为大家讲解一下在中如何缩短一段视频的时间.说到缩短视频的时间呢,其实上就是让视频快速地播放,这样就会涉及到EDIUS持续时间.时间重映射与冻结帧的问题.下 ...

  9. python提取视频中的音频 代码_如何使用python从视频文件中提取音频?

    I want to write a python program that could extract audio from a video file (e.g. video.avi). Is the ...

  10. 中忻嘉业科技:剪辑抖音视频需要注意的点有哪些

    我们在做抖音短视频的时候需要注意的因素有很多,因为一个短视频能不能有好的效果与很多的因素都是有关的,比如脚本.设备.出镜达人.以及发布时间等,还有一个很重要的就是剪辑.剪辑师对于做抖音短视频来说是很重 ...

最新文章

  1. 水题/poj 1852 Ants
  2. CV算法复现(分类算法4/6):GoogLeNet(2014年 谷歌)
  3. PHP与Java使用des加密通讯
  4. 验证字符串是否以指定字符开头
  5. c# 调用c++DLL方法及注意事项
  6. DAI、DHCP SNOOPING、ip source guard、IPSG
  7. 【网址收藏】rancher镜像源仓库
  8. 裕民银行 x mPaaS | 移动应用“适老化”改造,可不止是字体变大
  9. 关于html的一些杂技
  10. script标签的同步和异步
  11. python+OpenCV图像处理(二)图像像素的访问、通道的合并与分离
  12. 在Android开发中怎样使用Application类
  13. 使用Bert/ERNIE进行中文短文本分类(附数据集)
  14. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系
  15. ERROR 2002 (HY000): mysql
  16. angularjs(显示和隐身) 依赖注入
  17. 计算机及网络维护工程师专业问题
  18. C# GDI winfrom 图像转换椭圆形
  19. 计算机二级第二课堂学记录表,第二课堂学分/第二课堂学分是什么?大学第二课堂学分不够...
  20. 锐捷路由器如何配置虚拟服务器,[路由器自动配置方法技巧] 锐捷路由器配置方法...

热门文章

  1. 下载知乎视频并在线播放
  2. MT4API跟单软件详细分享
  3. CATIA模型导入3dsMax形成三层关系的问题
  4. 使用vb.net调用bartender并打印标签
  5. 解决“找不到msvcr120.dll,需要重新安装服务 ”最终版本
  6. 如果大一光靠自己学,华为HICE能过的几率大吗?
  7. 安卓html 750px,移动端750px页面适配
  8. 如何做好系统分析与设计
  9. 修改Solaris系统时间
  10. ie浏览器兼容模式怎么设置?