vue实现音频audio列表循环,实现暂停播放切换

2023-10-31

功能界面如下
循环渲染音频

功能使用如下:

  1. 首先根据后端返回的音频地址进行渲染,其中playAudioSrc字段用来控制暂停样式还是播放样式,audio进行隐藏
<ul class="virtualAvararFooterRightContentAudio">
    <li v-for="($item,$index) in virtualAvatarAudio" :key="$index" :style="{'border':(virtualAvatarFooterAudioIndex == $index) ? '1px solid #fff' :'none'}" @click.stop="selectVirtualAvatarAudio($item,$index)">
        <img @click="virtualAvatarPlayAudio($item,$index)":src="$item.playAudioSrc ? require('../assets/img/ai/audioBf.png') : require('../assets/img/ai/voice.png')" alt="">
      	<div>
             <p>{{$item.name}}</p>
          	 <!-- <span>0.26s</span> -->
         </div>
         <audio class="virtualAudio" :src="$item.path" style="display:none" :ref="'audio'+$index" controls></audio>
     </li>
 </ul>
  1. vue处理逻辑如下
   virtualAvatarPlayAudio(item,index){
            const audiosDom = document.getElementsByClassName('virtualAudio');
            let audios = [...audiosDom]
            if(item.playAudioSrc){
                //暂停该音频播放
                item.playAudioSrc = false
                // this.playAudio1.pause()
                audiosDom[index].pause()
            }else{
                //播放音频
                item.playAudioSrc = true
                audiosDom[index].play()
                audios.forEach((item_,index_)=>{
                    if(index_ != index){
                        //其他的音频
                        audiosDom[index_].pause()
                    }
                })
                //其他的音频暂停样式书写
                this.virtualAvatarAudio.forEach((item__,index__)=>{
                    if(index__ != index){
                        item__.playAudioSrc = false
                    }
                })
                //监听当前音频播放完毕后,使当前音频更改为暂停样式
                audios[index].addEventListener('ended', ()=> {
                    item.playAudioSrc = false
                }, false);
                 
            }
        },

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue实现音频audio列表循环,实现暂停播放切换 的相关文章

  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样
  • React js Stripe 结账不起作用

    我正在尝试在 React js 应用程序中呈现条带结账默认表单
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 使用模数按字母顺序对列表进行排序

    我在获取元素列表并按字母顺序对它们进行排序方面没有任何问题 但我很难理解如何使用模数来做到这一点 更新 这是按我的方式工作的代码 但是 我更喜欢下面提供的答案的可重用性 因此接受了该答案
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交

随机推荐

  • 怎么往钉钉群里发文件_钉钉授课教程

    一 课前直播准备 建立钉钉班级群 如果学校已经开通了钉钉 家校通讯录 那么老师只要进入自己所在的钉钉班级群看看还有哪些学生未加入 也可多邀请学生家长捆绑到学生上 以备妈妈的手机不能用 还可以用爸爸的 如果自己的学校还没有开通钉钉 家校通讯录
  • Linux软件包安装(rpm、yum、apt-get)

    http m blog csdn net suixin788 article details 52555558 Linux的发行版之间的联系和区别 http m blog csdn net wanghui499917270 article
  • 互斥和同步-读者/写者问题

    读者 写者问题 问题定义 存在一个多进程共享的数据区 该数据区可以是 一个文件或者一块内存或者一组寄存器 有些进程reader只读取该数据区中的数据 有些进程writer只往数据区写数据 满足条件 任意数量的读进程可以同时读该文件 一次只有
  • [LeetCode]235 二叉查找树的最近公共父亲节点

    Lowest Common Ancestor of a Binary Search Tree 二叉查找树的最近公共父亲节点 难度 Easy Given a binary search tree BST find the lowest com
  • 解决项目中出现问题 Cannot resolve com.xpand:starter-canal:0.0.1-SNAPSHOT

    解决方案 https www cnblogs com dalianpai p 14010753 html 亲测有效 编译通过 第一步 前往https github com chenqian56131 spring boot starter
  • Homebrew 更换国内源

    eval opt homebrew bin brew shellenv export HOMEBREW BREW GIT REMOTE https mirrors ustc edu cn brew git export HOMEBREW C
  • 【Spring】Feign客户端发送HTTPS请求绕过认证

    1 概述 转载 https www jianshu com p ea627708ab52 一个Spring Boot项目 为了使用Harbor仓库 起初通过Spring RestTemplate完成了对Harbor仓库的HTTPS请求 后想
  • 编程调节Win7/Win8系统音量的一种方法

    include
  • Cheat Engine使用教程

    系列文章目录 文章目录 系列文章目录 前言 一 解决办法 二 使用步骤 1 下载Cheat Engine 2 设置 前言 计算机硬盘不够用 但里面很多文件也舍不得删除 只有靠百度网盘来撑撑大小了 所以省吃俭用购买了百度会员 心疼每个月好几十
  • MPI_Bcast函数的用法

    程序功能 MPI Bcast函数用法 作成日期 2016 12 14 详细说明 include
  • AltiumDesigner如何绘制PCB封装

    AltiumDesigner如何绘制PCB封装 一 为什么要自己画PCB封装 当我们需要用的一些元器件PCB封装库中找不到的时候 我们就需要自己手动绘制一些元器件的PCB封装 当然也可以选择用相似的代替 但是在一些长场合中并不允许我们这样做
  • openwrt编译问题记录

    目录 1 git clone 速度太慢甚至断开连接 2 编译openwrt镜像make时发生错误 3 scripts feeds install a 时出现警告 1 git clone 速度太慢甚至断开连接 解决办法 在clone时将git
  • 如何显示文件后缀

    一 如何显示文件后缀 1 首先打开电脑上的本地磁盘D 2 然后点击组织 3 在弹出的窗口中点击文件夹和搜索 4 在弹出的窗口在点击查看 5 下拉滚动条 6 最后取消勾选隐藏已知文件类型的扩展名
  • 编程珠玑第三章习题5——英语中的连字符问题

    编程珠玑第三章习题5 英语中的连字符问题 问题 本问题将处理一小部分用连字符连接的英语单词方面的问题 下面的规则列表描述了一些以字母c结尾的单词的有效连字符连接 et ic al is tic s tic p tic lyt ic ot i
  • 使用Python语言实现凯撒密码的加密和解密

    使用Python语言实现凯撒密码的加密和解密 介绍 在密码学中 恺撒密码 英语 Caesar cipher 或称恺撒加密 恺撒变换 变换加密 是一种最简单且最广为人知的加密技术 它是一种替换加密的技术 明文中的所有字母都在字母表上向后 或向
  • Nginx配置https访问

    1 准备好证书和秘钥 如果是云服务器 可以到对应的云服务器上购买ssl证书 我这里是百度云 我以百度云为例子 直达链接 https console bce baidu com cas cas apply create 这个是免费1年的 可以
  • sql server数据库常见语句——增删查改

    一表数据增删查改 1 查询 select from 表名 select from test 2 新增 insert 表名 字段1 字段2 values 值1 值2 insert test a b values 1 2 3 修改 update
  • Meetup回顾|星策社区FeatureStore Meetup V2

    继2021年12月11日举办第一次Feature Store Meetup之后 星策开源社区于2022年4月10日举办了第二期 FeatureStore Meetup V2 本次活动邀请星策社区发起人 中国开源推进联盟副秘书长 开放原子基金
  • ADC外部RC电路电阻和电容选取计算方法

    ADC采样过程中遇到的问题 ADC是从模拟到数字世界的桥梁 当前ADC模块基本是MCU的标配 而且在转换速度和精度都有很好的表现 如NXP Kinetis KE15内部有2个16bit SAR型ADC模块 以精度制胜 可以配合EDMA完美实
  • vue实现音频audio列表循环,实现暂停播放切换

    功能界面如下 功能使用如下 首先根据后端返回的音频地址进行渲染 其中playAudioSrc字段用来控制暂停样式还是播放样式 audio进行隐藏 ul class virtualAvararFooterRightContentAudio l