html:

<script src="js/jquery-2.1.3.min.js"></script>
<div id="soundIconPlay" onclick="soundIconOff()" class="soundIcon soundIconPlay"></div>
<div id="soundIconOff" onclick="soundIconPlay()" class="soundIcon soundIconOff hide"></div>
<div class="audio" style="width:0; height:0px; overflow:hidden; text-indent:-999px;">
<audio id="bgmusic" loop="loop" autoplay="autoplay" src="data:images/bgmusic.mp3" controls=true></audio>
</div>
//关键: 先写页面再引js,否则会报Cannot read property 'pause/play' of null
<script type="text/javascript">
function init() {
var myAudio = document.getElementById("bgmusic");
myAudio.addEventListener('ended', loopAudio, false);
}
function loopAudio() {
var myAudio = document.getElementById("bgmusic");
myAudio.play();
}
//加载页面播放背景音乐(ios无法实现,只能模拟触屏实现自动播放)
function audioAutoPlay(id){
var audio = document.getElementById('bgmusic'),
play = function(){
audio.play();
document.removeEventListener("touchstart",play, false);
};
audio.play();
document.addEventListener("WeixinJSBridgeReady", function () {
play();
}, false);
document.addEventListener('YixinJSBridgeReady', function() {
play();
}, false);
document.addEventListener("touchstart",play, false);
}
audioAutoPlay('mybgaudio');
</script>
<script type="text/javascript">
var oAudioOFF = "1";
var oAudio = document.getElementById('bgmusic');
function soundIconPlay(){
    oAudioOFF = "1";
    oAudio.play();
    $('#soundIconPlay').show();
    $('#soundIconOff').hide();
};
function soundIconOff(){
    oAudioOFF = "0";
    oAudio.pause();
    $('#soundIconPlay').hide();
    $('#soundIconOff').show();
};
</script>

css:

.soundIcon{
position:absolute;
top:.1rem;
right:.1rem;
z-index:1;
}
.soundIconPlay{
width:.4rem;
height:.4rem;
background:url('../images/musicOn.png') no-repeat;
background-size:100%;
animation:bgRotate 1.2s infinite linear;
-o-animation:bgRotate 1.2s infinite linear;
-moz-animation:bgRotate 1.2s infinite linear;
-webkit-animation:bgRotate 1.2s infinite linear
}
.soundIconOff{
width:.4rem;
height:.4rem;
background:url('../images/musicOff.png') no-repeat;
background-size:100%;
animation:initial;
-o-animation:initial;
-moz-animation:initial;
-webkit-animation:initial
}
@keyframes bgRotate{
from{transform:rotate(0deg)}
to{transform:rotate(360deg)}
}
@-webkit-keyframes bgRotate{
from{-webkit-transform:rotate(0deg)}
to{-webkit-transform:rotate(360deg)}
}
@-moz-keyframes bgRotate{
from{-moz-transform:rotate(0deg)}
to{-moz-transform:rotate(360deg)}
}
@-o-keyframes bgRotate{
from{-o-transform:rotate(0deg)}
to{-o-transform:rotate(360deg)}
}

js 实现音频播放与暂停的更多相关文章

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

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

  2. 黄聪:原生js的音频播放器,兼容pc端和移动端(原创)

    更新时间:2018/9/3 下午1:32:54 更新说明:添加音乐的loop设置和ended事件监听 loop为ture的时候不执行ended事件 1 2 3 4 5 6 7 8 9 10 11 12 ...

  3. [js常用]连续播放音频

    许多音频连续播放.有的时候音频过大会分成多个音频.播放的时候需要连续播放 <!DOCTYPE HTML> <html> <head> <meta charse ...

  4. Wavesurfer.js音频播放器插件的使用教程

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的音频播放器插件,本文主要记录它及其视觉效果插件Regions插件的使用方法. 1.创建实例 引入插件 import W ...

  5. iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置

    iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置 ios9音频应用播放控制 在“iOS 9音频应用播放音频之ios9音频基本功能”一文可以看到AVAudioPlayer类有很多的属性以及方法 ...

  6. Jquery音频播放插件下载地址(有Html、JS、CSS、音频)

    有详细的html文件.全部JS代码文件.Css样式文件.测试音频资料 音频播放插件下载链接(百度云): http://pan.baidu.com/s/1pKC904F 提取码评论留邮箱发送,谢谢!

  7. HTML5-video标签-实现点击预览图播放或暂停视频

    HTML5-video标签-实现点击预览图播放或暂停视频 刚刚参加工作,开始更多的接触到一些新的知识,促使我开始了解html5和css3的新特性.这时我才真的发现到html5和css3的强大. 之前关 ...

  8. 微信小程序-图片、录音、音频播放、音乐播放、视屏、文件

    图片: wx.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照. OBJECT参数说明: 注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx ...

  9. html5 audio音频播放全解析

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

随机推荐

  1. yum -y install python-devel

    yum -y install python-devel的时候报错如图: Could not retrieve mirrorlist http://mirrorlist.centos.org/?rele ...

  2. jmeter做http请求时报错

    在发帖时候发现请求不成功,在察看结果树的响应数据中提示:“”抱歉,您的请求来路不正确或表单验证串不符,无法提交“” 重复看了多次请求,发现Implementation这个地方选择HttpClient3 ...

  3. MD5 AND JSON AND XML

    MD5JSON.h #pragma once #include "include/json/json.h" #include "include/md5/md5.h&quo ...

  4. thinkphp DEFINED标签

    DEFINED标签用于判断某个常量是否有定义,用法如下: 大理石平台检验标准 <defined name="NAME"> NAME常量已经定义 </defined ...

  5. php抓取远程数据显示在下拉列表中

    前言:周五10月20日的时候,经理让做一个插件,使用的thinkphp做这个demo 使用CURL抓取远程数据时如果出现乱码问题可以加入 header("content-type:text/ ...

  6. js面试总结2

    原型和原型链: 题目,知识点,解答: 1.如何准确地判断一个变量是数组类型 2.写一个原型链继承的例子 3.描述new一个对象的过程 4.zepto(或其他框架)源码中如何使用原型链. 知识点 构造函 ...

  7. range()函数在python3与python2中的区别

    range()函数在python3与python2中的区别 - CSDN博客 https://blog.csdn.net/weixin_37579123/article/details/8098038 ...

  8. 标记excel中输入的重复数据

    首先选中需要标记重复的数据列 开始 -> 条件格式 -> 突出显示单元格规则 -> 重复值 选择相应的颜色即可 效果如下:

  9. 获取一个数组(vector)与查找值(value)的差最小绝对值的成员索引的算法

    代码如下: 函数作用:传递进来一个数组(vector),和一个需要查找的值(value),返回与value的差值绝对值最小的vector成员索引,若value不在vector范围中,则返回-1: in ...

  10. hudson通过ant自动编译、启动、停止java的jar

    set ANT_PATH=E:\soft\apache_ant\bine:cd E:\data\codex\server\trunk\serversvn up @echo.@echo.@echo &q ...