AudioPlayer.js实现限制仅播放一条语音、多条语音顺序播放、自动播放(有限制)、调整语音条长度

使用场景:语音直播,实现点击播放某一条语音,暂停其他播放中的语音。播完一条语音,自动播放下一条。当接收到新语音,且没有播放中的音频,自动播放这条语音

这里只贴出代码片段,源码和更改后的源码可在这下载

仅播放一条语音

思路:当点击音频播放按钮时,控制其他音频暂停

1.将所有语音循环调用插件

$('#audio_'+audio_id).audioPlayer();

2.AudioPlayer.js中已经有点击事件,在此基础上添加逻辑即可

更改后:

解释:

当初始化后,audio元素变成下图所示了。可以通过改变class值来达到更改audio显示状态的目的

多条语音顺序播放

思路:给audio标签添加监听事件,当语音播完后,控制下一条语音播放

//连续播放音频
function continuousPlayAudio()
{let audios = $('audio');for (let i = 0; i < audios.length; i++) {let maxLength = i + 1;let nextAudio = audios[maxLength];audios[i].addEventListener('ended', function(event) {if (audios.length === maxLength) return false;$(nextAudio).parents(".audioplayer").removeClass("audioplayer-stopped");$(nextAudio).parents(".audioplayer").addClass("audioplayer-playing");nextAudio.play();}, false);}
}

自动播放

当新插入语音,并且当前没有播放中的音频,则播放新语音

function autoPlayAudio(audio_id, type) {$('#audio_'+ audio_id).audioPlayer();//初始化音频if (type === 'new_audio' && !isHasPlayingAudio() ) {//新插入音频并且没有播放中的音频$('#audio_'+ audio_id).parents(".audioplayer").removeClass("audioplayer-stopped")$('#audio_'+ audio_id).parents(".audioplayer").addClass("audioplayer-playing")$('#audio_'+ audio_id).next().attr('title', 'Pause').find('a').html('Pause');$('#audio_'+ audio_id).play();//如果监听到音频由于一些原因没有播放(ios无法自动播放),则恢复图标样式.if (audios[newestAudio].paused) {$('#audio_'+ audio_id).parents(".audioplayer").addClass("audioplayer-stopped")$('#audio_'+ audio_id).parents(".audioplayer").removeClass("audioplayer-playing")$('#audio_'+ audio_id).next().attr( 'title', 'Play').find( 'a' ).html( 'Play' );}}
}

调整音频长度

思路:AudioPlayer有个loadeddata的事件监听,可以在这增加逻辑判断,更改长度属性

AudioPlayer.js,一个响应式且支持触摸操作的jquery音频插件

AudioPlayer.js实现限制仅播放一条语音、多条语音顺序播放、自动播放(有限制)、调整语音条长度相关推荐

  1. JS一起学04:函数返回值、定时器、随机数、自动播放的幻灯片

    一.函数返回值----将相应的值返回到函数调用的地方 1. 可以不写返回值 2. 可以没有return,如果不返回,默认返回undefined 3. 本函数内,renturn之后的JS语句不再执行,跳 ...

  2. 微信android自动播放视频文件,vue-player或TcPlayer在微信内自动播放video和audio

    不管是IOS框互理.各近架跳机蓝种近架跳机蓝种近架跳和Android,当video和audio初始src为空,根据点击不同的媒体源(非播放器控件),比如多个章节的视频列表,动态给src赋值并执行pla ...

  3. flutter播放上一首和下一首,自动播放下一首

    参考文章 自己的代码如下 import 'dart:async'; import 'package:audioplayer/audioplayer.dart'; import 'package:flu ...

  4. vue+flv播放flv视频、m3u8视频,谷歌浏览器视频不自动播放怎么办

    播放flv视频 <template><div id="app1"><video id="myvideo" @click=" ...

  5. html手机不能自动播放音乐,解决移动端浏览器 HTML 音频不能自动播放的三种方法...

    由于Android,IOS移动端的浏览器以及微信自带的浏览器为了用户更好的体验,规定不自动播放音频视频,默认屏蔽了autoplay,如果要想达到自动播放效果,需要单独处理,方法有以下几种: 第一种:添 ...

  6. HTML5播放视频autoplay不起作用-HTML5视频不自动播放

    初学HTML5视频播放的同学,可能大多数都会遇到这样一个问题:按照教程写的代码,添加了autoplay属性,为什么视频还是无法自动播放? <!DOCTYPE html> <html& ...

  7. 苹果微信html音乐播放,HTML5教程 在iOS微信浏览器中如何自动播放HTML5 audio

    本篇教程探讨了HTML5教程 在iOS微信浏览器中如何自动播放HTML5 audio,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < html> Aut ...

  8. html5手机不能自动播放音乐,H5案例---解决H5中背景音乐无法自动播放问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 四.完整代码 您的浏览器不支持 audio标签. // 音乐播放 function autoPlayMusic() { // 自动播放音乐效果,解决浏览器 ...

  9. 如何在html中自动播放音乐,如何使音乐在打开页面时自动播放

    你好朋友, 给你一个自动播放的背景音乐代码: 第一步.进入新浪博客,输入"登录名""密码"和"验证码"后点击"登入". ...

最新文章

  1. 这有一份 Git 日常使用清单,你需要吗?
  2. C#数字证书编程总结
  3. 为什么 scanf( )(scanf_s)函数老要输入两次才行?
  4. 超级计算机 红皇后,阿丽塔诺瓦不是最大反派 幕后大boss超级计算机黑化AI
  5. java中的case1怎么说_Java 中的 CAS 简述及原理解析
  6. transaction type popup window when create service order
  7. Apollo 1 融合 Spring 的三个入口
  8. 小爱同学100个奇葩回复_小爱同学深度体验报告:这6个问题值得思考
  9. Python深度学习基于PyTorch (附完整PPT下载)
  10. matlab 8点fft蝶形图,FFT快速傅里叶变换(蝶形算法)详解精要.ppt
  11. ZOJ 3204 Connect them
  12. C51语言检测电平变化,单片机引脚上的电平变化
  13. 学生报告-大学生活经验
  14. 手机网络IP地址问题
  15. 中国运动草皮设备市场趋势报告、技术动态创新及市场预测
  16. 轻量化html编辑器,建站“一气呵成” 推荐7大免费网页编辑器
  17. 基于RouteOS的NAT Radius网络计费管理实验
  18. 电脑连接手机Termux后保持在后台运行
  19. 【CTF题解NO.00003】moeCTF 2020 - official write up by arttnba3
  20. docker网桥讲解

热门文章

  1. offset函数的使用方法_有点麻烦:使用Excel OFFSET函数
  2. 国家基因组科学数据中心(NGDC)---组学原始数据如何上传GSA
  3. echarts地图,通过工具生成对应区域的json数据,例如成都市,锦江区
  4. 轩辕传奇服务器合并信息,合服查询-轩辕传奇官方网站-腾讯游戏-腾讯首款3D浅规则战斗网游...
  5. 老电脑安装Windows11完整记录
  6. 手势识别的无线遥控小车
  7. 什么是编程能力 | 计算机专业学生如何提高编程能力 | 如何自学编程
  8. 【毕业优刊】想要毕业前录用一篇2区SCI论文,现在提交没问题,涵盖算法、传感器、自然语言处理等计算机大部分领域
  9. 帧同步分离逻辑层和渲染层_帧同步的一些坑
  10. [BEV]学习笔记之BEVDepth(原理+代码)