前一段时间做到一个项目,其中用到很多之前没用过的东西,其中一个就是h5的多音频实现,背景音频和说话同时播放,其中出现了很多问题,不过总算找到了解决方案。

平时做H5如果只有一个音乐的话就直接在页面里面添加一个audio标签,具体这个标签怎么使用,有哪些属性可以参考http://www.runoob.com/tags/ref-av-dom.html

<audio id="backMusic"  src="music.mp3" autoplay loop></audio> <!--音乐-->
今天就来解决一下,怎么播放多个音频文件
刚开始我的方法是在H5页面放很多音频,也就是很多audio标签,发现苹果手机不兼容,它只能播放一个音频,暂停上一个,下一个也不会播放,后面网上查找了一下,说苹果微信自带播放音频的只能同时播放一个,然后只能暂停背景音乐去播放说话的声音
这个我是通过动态修改audio标签的src属性
下面是我定义的音乐的文件,打开页面自动播放背景音乐
  var backMusic = document.getElementById("backMusic");

        setTimeout(function(){
backMusic.play();
music.play(); },100)
document.addEventListener('DOMContentLoaded', function () {
function audioAutoPlay() {
music.play(); backMusic.play();
document.addEventListener("WeixinJSBridgeReady", function () {
music.play();
backMusic.play();
}, false);

  然后我又在需要说话的时候把这个背景音乐的src的值动态改变为需要播放的音频

                       music.pause();
music.src="fumu.mp3";//父母唠叨
setTimeout (function(){ music.play(); },2000);

  这样只能实现单个音频播放,但是要实现多个音频同时播放还是没解决,后来又看了别人发的一个项目参考了一下,进行了尝试,发现居然可以了

//定义
<div class="audiopalyer" style="display: none">
<audio id="backMusic" src="music.mp3" autoplay loop></audio> <!--背景音乐-->
</div>
<div class="talkplay" style="display: none">
<audio id="audios" src="music.mp3" ></audio>//中间穿插的和背景音乐同时播放的音频 </div> //js
var music = document.getElementById("audios");
var backMusic = document.getElementById("backMusic");
setTimeout(function(){
audioAutoPlay();
},100)
//打开微信自动播放音频
document.addEventListener('DOMContentLoaded', function () {
function audioAutoPlay() {
music.play(); backMusic.play();
document.addEventListener("WeixinJSBridgeReady", function () {
music.play();
backMusic.play();
}, false); //需要两个音频同时播放的时候
music.pause(); music.src="fumu.mp3";//父母唠叨 setTimeout (function(){
music.play();},2000);

  

  既然微信自带的播放器只能播放一个音频,那如果用别的音频软件去同时播放别的音乐应该是可以的,就这样我把两个音频分别放到不同的div里面,相当于把他们两个隔开了,然后再获取这两个标签,让他们开始的时候同时播放,然后暂停那个需要替换音频资源的

等到需要播放说话声音的时候就直接替换src然后再让他播放就可以实现两个音频同时播放的效果

移动端h5 实现多个音频播放的更多相关文章

  1. H5多媒体(用面向对象的方法控制视频、音频播放、暂停、延时暂停)

    视频,音频播放器会是我们在工作中用到的一些h5新标签,它自带一些属性,比如暂停播放,快进快退,但是,我们经常不用原生的样式或者方法,我们需要自定义这些按钮来达到我们需要的样式,也需要我们自定义来实现一 ...

  2. AVS 端能力之音频播放模块

    功能简介 音频播放 音频流播放 URL文件播放 播放控制 播放 暂停 继续 停止 其它功能(AVS服务器端实现) 支持播放列表 支持上一首下一首切换 支持电台 事件指令集 AudioPlayer 端能 ...

  3. html5 audio音频播放全解析

    序 html5开启了一个新时代,因为它让浏览器本身变得不那么被动,audio api就是一个典型的列子,在html5还没确定之前,如果想要在网页上听音乐看视频唯一的办法就是用flash意思是当你没有给 ...

  4. 移动端H5制作安卓和IOS的坑 持续更新...

    移动端H5制作安卓和IOS的坑 持续更新... 前言:最近参加公司的H5页面创意竞赛,又遇到不少页面在不同系统上的坑.踩坑之余,觉得很多之前遇到的知识点都忘了,索性开一篇博文,把这些坑都统一归纳起来, ...

  5. 移动端H5混合开发设置复盘与总结

    此篇接上一篇: 移动端H5混合开发,Touch触控,拖拽,长按, 滑屏 实现方案 https://www.cnblogs.com/buoge/p/9346699.html app 场布设置已经上线了, ...

  6. 【转】h5页面audio不自动播放问题

    1.audio:html5音频标签 <audio loop src="/photo/aa.mp3" id="audio" autoplay preload ...

  7. 移动端H5开发遇到的问题及解决方法

    本篇文章给大家带来的内容是关于移动端H5开发遇到的问题及解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 微信分享签名错误invalid signature vue单页应用hi ...

  8. 移动端H5开发中的常见问题处理

    1.问题之合成海报: 功能技术:http://html2canvas.hertzen.com 问题描述:合成模糊.合成区域内容错位,合成不完整,合成边缘白条等. 解决方案:如有页面布局正常合成错位的, ...

  9. 最简单的视音频播放示例7:SDL2播放RGB/YUV

    本文记录SDL播放视频的技术.在这里使用的版本是SDL2.实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API.在Windows平台下,SDL封装了Direct3D这类的API ...

随机推荐

  1. python学习之 getattr vs __get__ vs __getattr __ vs __getattribute__ vs __getitem__

    1. getattr.setattr.hasattr getattr比较常用,与setattr和hasattr一起出现,他们也是最容易理解的,下面是他的用法: class Profile(): nam ...

  2. Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别

    Python是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库.Python源代码遵循 GPL (GNU General Public License) 协议 ...

  3. ps切图技巧

    步骤1: ps打开psd文件 步骤2: 点击移动工具,观察左上角的自动选择是否有勾选 ,如果没有最好勾选,对应的选项有图层和组,善于切换这个功能能够有效快速的找到你要的区域 步骤3: 找到要切图的元素 ...

  4. 2018-2019-2 20165234 《网络对抗技术》 Exp3 免杀原理与实践

    实验三 免杀原理与实践 实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 2.通过 ...

  5. Ansible-----include

    什么是include 在ansible中,我们可以通过include,在一个playbook中包含另一个文件,以便实现代码的重复利用. include_tasks模块 include_tasks模块用 ...

  6. 20175204 张湲祯 2018-2019-2《Java程序设计》第八周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第八周学习总结 教材学习内容总结 -第十五章泛型与集合框架要点: 一.泛型 1.泛型(Generics)的主要目的是可以 ...

  7. JAVA学习笔记(2)—— java初始化三个原则

    1. 初始化原则 (1)   静态对象(变量)优先于非静态对象(变量)初始化,其中静态对象(变量)初始化一次,非静态对象(变量)可能会初始化多次. (2)   父类优先于子类初始化 (3)   按照成 ...

  8. expect 批量自动部署ssh 免密登陆 之 三

    #!/bin/expect -- ########################################## zhichao.hu #Push the id.pas.pub public k ...

  9. C# 高级编程04----类

    一.类和结构: 相同点: 1. 类和结构都是创建对象的模板,包含数据成员和方法成员 不同点: 1.在内存中的存储方式: 1)类是存储在堆内存上的引用类型,结构是存储在栈内存的值类型 2)结构不支持继承 ...

  10. python 对Excel表格的读取

    import xlrd flbrd = "D:\\考勤系统.xlsx" ws = xlrd.open_workbook(flbrd) # 获取所有sheet名字:ws.sheet_ ...