<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title></title>
<style type="text/css">
#play_btn {
position: absolute;
right: 6%;
top: 6%;
width: 24px;
height: 24px;
overflow: hidden;
background-color: #000;
border: solid 3px #ccc;
border-radius: 50%;
filter: alpha(opacity=50);
-moz-opacity: 0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
} #play_btn button {
display: inline-block;
width: 24px;
height: 24px;
background-image: url(music.png);
background-repeat: no-repeat;
background-position: center;
background-size: 45%;
background-color: transparent;
border: none;
} #play_btn audio {
width: 0px;
height: 0px;
overflow: hidden;
visibility: hidden;
} #play_btn.play {
-webkit-animation: play 3s linear infinite;
-moz-animation: play 3s linear infinite;
-ms-animation: play 3s linear infinite;
animation: play 3s linear infinite;
} #play_btn.pause {
-webkit-animation: none;
-moz-animation: none;
-ms-animation: none;
animation: none;
} @keyframes play {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
} @-moz-keyframes play {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
} @-webkit-keyframes play {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
} @-ms-keyframes play {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
</style>
</head> <body>
<div id="play_btn">
<button type="button"></button>
<audio src="Hebe-A_little_happiness.aac" loop preload></audio>
</div>
<script>
/*
touchstart,DOMContentLoaded无法在jQuery.ready里执行监听操作
*/
function autoPlay() {
/* 自动播放音乐效果,解决浏览器或者APP自动播放问题 */
function musicInBrowserHandler() {
audioToggle(true);
document.body.removeEventListener('touchstart', musicInBrowserHandler);
}
document.body.addEventListener('touchstart', musicInBrowserHandler); /* 自动播放音乐效果,解决微信自动播放问题 */
function musicInWeixinHandler() {
audioToggle(true);
document.addEventListener('WeixinJSBridgeReady', function() {
audioToggle(true);
}, false);
document.addEventListener('YixinJSBridgeReady', function() {
audioToggle(true);
}, false);
document.removeEventListener('DOMContentLoaded', musicInWeixinHandler);
}
document.addEventListener('DOMContentLoaded', musicInWeixinHandler);
}
autoPlay(); // ==================================================== function audioToggle(isPlay) {
var playBtn = document.getElementById('play_btn');
var audio = playBtn.getElementsByTagName('audio')[0]; if (typeof(isPlay) == 'undefined') {
isPlay = !!audio.paused;
} var space = String.fromCharCode(32); // 空格
var playBtnClass = space + (playBtn.getAttribute('class') || (isPlay ? 'play' : 'pause')) + space;
if (isPlay) {
playBtnClass = playBtnClass.replace(space + 'pause' + space, space + 'play' + space);
audio.play();
} else {
playBtnClass = playBtnClass.replace(space + 'play' + space, space + 'pause' + space);
audio.pause();
}
playBtn.className = playBtnClass.replace(/(^\s*)|(\s*$)/g, '');
} document.getElementById('play_btn').onclick = function() {
audioToggle();
}
</script>
</body> </html>

[HTML]音乐自动播放(兼容微信)的更多相关文章

  1. H5背景音乐自动播放(兼容微信IOS,进程后台切换自动停止播放,本文例子为Vue写法)

    <template> <audio src="./static/music.mp3" id="bgMusic" preload="a ...

  2. iphone微信 h5页音乐自动播放

    iphone微信 h5页音乐自动播放: // iphone自动播放 document.addEventListener("WeixinJSBridgeReady", functio ...

  3. ios微信浏览器音乐自动播放

    setTimeout(function(){ //一般情况下,这样就可以自动播放了,但是一些奇葩iPhone机不可以 document.getElementById('bgmedia').play() ...

  4. H5音乐自动播放ios//禁止安卓手机图片点击

    定义音乐按钮 <div id="music-btn" class="o-play" style="width: 24px; height: 24 ...

  5. html - html5 audio 音乐自动播放,循环播放等

    转自:http://blog.csdn.net/u012246458/article/details/50618759 audio播放音乐 <audio id="audio" ...

  6. 解决ios下的微信打开的页面背景音乐无法自动播放

    后面的项目发现,还有两个坑,需要注意下: ·本文的解决方案的核心是利用了 微信/易信 在ready的时候会有个 WeixinJSBridgeReady/YixinJSBridgeReady事件,通过监 ...

  7. 微信h5,背景音乐自动播放

    移动端默认是禁止背景音乐自动播放的,很多需求都需要在页面加载完成的情况下同时出现背景音乐. 既然是微信h5,那么wx.config肯定不陌生,废话不多,直接上代码: html: <audio s ...

  8. 解决ios下的微信页面背景音乐无法自动播放问题

    在做各种html5场景页面的时候,插入背景音乐是一个很普遍的需求,我们都知道,ios下的safari是无法自动播放音乐的,以至于现在行程一种认知,ios是没有办法自动播放媒体资源的,这个认知其实是错误 ...

  9. 解决在微信中部分IOS不能自动播放背景音乐

    前言在做各种HTML5场景页面的时候,插入背景音乐是一个很普遍的需求.我们都知道,IOS下的safari是无法自动播放音乐的,以至一直以来造成一种错误的认识,iso是无法自动播放媒体资源的.直到微信火 ...

随机推荐

  1. android开发解决Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > java.lang.RuntimeException: java.lang.RuntimeException: c.....

    网上常见的方法我都试过,都没能解决,偶然看到的一个方法解决了,在这了记录一下. 在App目录下的build.gradle的android{ ...  ....}中添加如下代码,即可解决.(xx.xx. ...

  2. Oracle—通过操作系统进程查看数据库sql语句

    工作中遇到一个问题,某报表运行时间特别长,通过操作系统可以看到一个oracle进程消耗资源比较大,如何能够通过该操作系统进程找到具体SQL呢.记录如下: 1.查看Linux系统进程号 可以通过top动 ...

  3. git编译安装

    因yum安装的git版本过低,所以尝试使用编译安装git 以下为编译安装时执行的命令 tar xf git-2.9.5.tar.gz cd git-2.9.5yum install curl-deve ...

  4. NFPA, UL

    Who or what is NFPA? NFPA (National Fire Protection Association) is an organization in the USA that ...

  5. 解决java新开页面被拦截的问题

    在开发中遇到from表单利用 target="_blank" 属性新开页面时被拦截. 用ajax让form表单提交,这时有可能浏览器会拦截新开页面,这时只 需要设置 ajax 同步 ...

  6. 结合数据结构来看看Java的String类

    数据结构中定义字符串是由零个或多个字符组成的有限序列,有限,指出字符串的长度是一个有限的数值:所谓的序列,说明串的相邻字符之间具有前驱和后继的关系.字符串一般记为s="a1a2...an&q ...

  7. 安装netcat(-bash: netcat: command not found)

    安装netcat 在用swoole UDP服务器可以使用netcat -u 来连接测试时,报错-bash: netcat: command not found,是因为centos7未安装netcat. ...

  8. 关于怎样获取DevExpress GridView过滤后或排序后的数据集问题(转)

    GridView用自带的过滤功能过滤数据后,想要获取过滤后的数据集,有两种方式: 一.笨办法就是循环遍历GridView,根据gridView.GetRow()或者gridView.GetDataRo ...

  9. Angular2+AngularJS

    AngularJS 系列: 1.angular.module 的定义 var mapApp = angular.module("positionSalaryEditApp",[&q ...

  10. php7.2 sqlsrv 扩展 ubuntu Homestead centOs

    PHP 7.2.9-1+ubuntu18.04.1 安装 sqlsrv 扩展 参考文章,感谢作者(建议先看,不看也可以) https://serverpilot.io/docs/how-to-inst ...