在h5页面上添加音乐播放
接到需求说要做一个h5轮播图,同时配上背景音乐。
Html部分:
<!--音乐开始-->
<div id="music">
<div id="audio-btn" class="on" onclick="music.changeClass(this,'media')">
<audio loop="loop" src="data:images/SeeYouAgain.mp3" id="media" preload="preload"></audio>
</div>
</div>
<!--音乐结束-->
Css部分:
#music #audio-btn {
width: 44px;
height: 44px;
position: fixed;
z-index: 1000;
top: 30px;
left: 30px;
}
#music .on {
background: url('../images/music_on.png') no-repeat 0 0;
-webkit-animation: rotating 1.2s linear infinite;
animation: rotating 1.2s linear infinite;
}
#music .off {
background: url('../images/music_off.png') no-repeat 0 0;
}
@-webkit-keyframes rotating {
from {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes rotating {
from {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
JS 部分:
var music = {
changeClass: function(target, id) {
var className = $(target).attr('class');
var ids = document.getElementById(id);
(className == 'on') ?
$(target).removeClass('on').addClass('off'): $(target).removeClass('off').addClass('on');
(className == 'on') ?
ids.pause(): ids.play();
},
play: function() {
var media = document.getElementById('media');
media.src = "images/SeeYouAgain.mp3";
media.play();
//document.getElementById("audio-btn").click(changeClass(this,'media'));
document.addEventListener("WeixinJSBridgeReady", function() {
var audioPlayer = document.querySelector('audio#media');
if(audioPlayer.paused) {
music.changeClass($(".off"), 'media')
}
media.play();
}, false);
}
}
music.play();
var audioPlayer = document.querySelector('audio#media');
if(audioPlayer.paused) {
music.changeClass($(".on"), 'media')
}
遇到的问题:
(1)安卓手机正常,苹果手机微信不能播放:
添加微信监听事件:
document.addEventListener("WeixinJSBridgeReady", function() {
media.play();
)}
(2)微信正常,苹果ipad上的qq不能播放
这个在各种百度后发现,还是不能播放,所以我们对播放器进行判断,更换停播样式:
var audioPlayer = document.querySelector('audio#media');
if(audioPlayer.paused) {
music.changeClass($(".on"), 'media')
}
(3)qq好了,微信出现样式是停播,但是实际在播放,所以把判断也要赋值到,监听后的方法中。
ok 各种正常,写个博客压压惊。
在h5页面上添加音乐播放的更多相关文章
- WordPress怎么在页面上添加目录
要实现的如下功能,在页面上添加一个文章目录: 步骤: 1)在wordpress中,在Posts----Categories中建立目录, 2) 3)add new post,指定post所属的cat ...
- Inno Setup技巧[界面]欢迎页面上添加文字
原文:Inno Setup技巧[界面]欢迎页面上添加文字 本文介绍在"欢迎页面添加文字"的两种方法. 界面预览: Setup技巧[界面]欢迎页面上添加文字" title= ...
- jquery,从后台查数据,给页面上添加树形。
前台jquery+ajax请求往页面上添加树形的js代码 //传入当前点击节点的id,在后台代码查询出parentid=当前节点id的记录数,从而实现点击当前节点,往后台发送ajax请求,查询出子节点 ...
- 每天看一片代码系列(三):codepen上一个音乐播放器的实现
今天我们看的是一个使用纯HTML+CSS+JS实现音乐播放器的例子,效果还是很赞的: codePen地址 HTML部分 首先我们要思考一下,一个播放器主要包含哪些元素.首先要有播放的进度信息,还有播放 ...
- 【转】一种解决h5页面背景音乐不能自动播放的方案
原文:http://www.cnblogs.com/wmhuang/p/5452259.html --------------------------------------------------- ...
- 一种解决h5页面背景音乐不能自动播放的方案
场景:微信.浏览器.App 普通解决方案:采用audio标签的autoplay属性 现象: 大部分IOS系统和少部分Android微信不支持自动播放 $解决方案:监听WeixinJSBridgeRea ...
- ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法
一. 运行环境: iphone所有机型的qq浏览器,safari浏览器,微信内置浏览器(qq浏览器内核)等. 二. 异常现象: 1. 大幅度上下滑动h5页面,然后停止滑动,有时候会影响到页面滚动,如局 ...
- 关于微信H5页面开发中音乐不自动播放的解决方法
我想应该有很多人在做H5场景应用.H5微刊.H5微杂志的时候加入背景音乐吧(客户需求),相信很多人一定碰过不能自动播放的时候,即使是相同的iPhone 5s也有不播放的时候,很蛋疼吧!? 之前我的解决 ...
- 【转】h5页面audio不自动播放问题
1.audio:html5音频标签 <audio loop src="/photo/aa.mp3" id="audio" autoplay preload ...
随机推荐
- iOS 安全地在主线程执行一个Block
//主线程同步队列 #define dispatch_main_sync_safe(block)\ if ([NSThread isMainThread]) {\ block();\ } else { ...
- PLsql的汉化工具
链接:https://pan.baidu.com/s/19J-px5I_7qcMb5CHDwJZZQ 密码:pr89
- uboot前传
1.uboot到底是干嘛的 uboot主要作用是用来启动操作系统内核. uboot还要负责部署整个计算机系统. uboot中还有操作Flash等板子上硬盘的驱动. uboot还得提供一个命令行界面供人 ...
- 吴裕雄--天生自然java开发常用类库学习笔记:多对多关系范例
import java.util.List ; import java.util.ArrayList ; public class Course{ private String name ; priv ...
- POJ 3321:Apple Tree 树状数组
Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 22131 Accepted: 6715 Descr ...
- POJ3616:Milking Time
Milking Time Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5682 Accepted: 2372 Desc ...
- Python自学之路
2020年春节,受新型冠状病毒影响,整个春节假期,全国人民都在恐慌之中,为了避免大家上班相互传染,公司号召国家政策,开始上班日期延迟,在家呆的实在太无聊,突然感觉自己不能浪费这美好的时光,决定学习Py ...
- Linux系统下的/etc/nsswitch.conf文件
一.什么是nsswithch.conf(服务搜索顺序)文件呢? nsswitch.conf(name service switch configuration,名字服务切换配置)文件位于/etc目录下 ...
- R apply()函数
创建一个列表变量,它的第一个元素包含所有从0到9的平方数,第二个元素为10到19之内的所有平方数,依此类推,最后一个元素为90到99之内的平方数.没有平方数的元素也应该被包含在内! 学习网友的解题思路 ...
- 第九届蓝桥杯省赛c/c++真题明码题解答案,另类excel解法思路
直到快比赛才重视起之前学校给报了蓝桥杯,且这段时间一直在做Python,所以没做什么准备. 赛场上做这道题时连反码补码的知识点都记混,所以直接用了excel做这道题目,分享下做题思路.及题解. 标题: ...