jquery控制背景音乐开关与自动播放提示音的方法


Posted in Javascript onFebruary 06, 2015

本文实例讲述了jquery控制背景音乐开关与自动播放提示音的方法。分享给大家供大家参考。具体如下:

很多人初学网页制作时在网页中加入一段背景音乐,听到音乐响起的那一刻往往都会有一丝的成就感。

这里就为大家讲解如何使用js控制背景音乐播放与停止。具体如下:

一、jquery控制背景音乐开关

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >

<head>

    <script src="js/jquery.min.js"></script>

    <script type="text/javascript">

        //加载背景音乐,并自动播放

        $('#bg_music').append('<embed id="m_bg_music"  loop=true  volume="60" autostart=true hidden=true src="guoan.mp3" />');

        $('#bg_music_btn').click(function(){

            var state = $('#bg_music_btn').attr('state');

            if(state == '1')//

            {

                $('#bg_music_btn').attr('state','0');

                $('#bg_music_btn').html('打开背景音乐');

                $('#m_bg_music').remove();

            }else if(state == '0')

            {

                $('#bg_music_btn').attr('state','1');

                $('#m_bg_music').remove();

                $('#bg_music_btn').html('关闭背景音乐');

                $('#bg_music').append('<embed id="m_bg_music"  loop=true  volume="60" autostart=true hidden=true src="guoan.mp3" />');

            }

        });

    </script>

</head>

<body>

<!--控制播放-->

<div id="bg_music_btn" state='1'>关闭背景音乐</div>

<!--背景音乐-->

<div id="bg_music"></div>

</body>

</html>

以上介绍了jquery如何控制背景音乐开关的方法,接下来再进一步扩展。

二、JQuery自动播放提示音

最早对网站有自动提示音的功能,发现在Discuz论坛中出现。但是它有一个问题就是只支持flash,不支持HTML5,不明确最新版本中是否支持HTML5。
对于Discuz 7.2 版本中,提供了player.swf、pm_1.mp3、pm_2.mp3、pm_3.mp3,然后使用如下脚本来实现:

<div id="soundplayerlayer" style="position:absolute;top:-100000px"></div> 

<script type="text/javascript" reload="1"> 

function soundplayer(file) { 

    $('soundplayerlayer').innerHTML = AC_FL_RunContent('id', 'pmsoundplayer', 'name', 'pmsoundplayer', 'width', '0′, 'height', '0′, 'src', '{$boardurl}images/sound/player.swf', 'FlashVars', 'sFile={$boardurl}images/sound/pm_' + file + '.mp3′, 'menu', 'false',  'allowScriptAccess', 'sameDomain', 'swLiveConnect', 'true'); 

} 

</script>

 
可惜这个方法局限在flash,在苹果设备上可能就会遇到麻烦了。

HTML5开源播放器JPlayer支持自动播放提示音
JPlayer支持play事件触发自动播放提示音。

1. 装载JPlayer到一个div层,例如#jplayer。

$(function() { 

    $("#jplayer").jPlayer({ 

      swfPath: "http://www.jplayer.org/latest/js/Jplayer.swf", 

      ready: function () { 

        $(this).jPlayer("setMedia", { 

          mp3: "./resources/message.mp3" 

        }); 

      }, 

      supplied: "mp3" 

    }); 

});

body部分加入:<div id="jplayer"></div>

装载JQuery完成后,jplayer的div内容在支持swf的浏览器内变成:
 

<div id="jplayer" style="width: 0px; height: 0px;"><img id="jp_poster_0" style="width: 0px; height: 0px; display: none;"><object height="1" width="1" id="jp_flash_0" data="http://www.jplayer.org/latest/js/Jplayer.swf" type="application/x-shockwave-flash" style="width: 0px; height: 0px;"><param name="flashvars" value="jQuery=jQuery&id=jplayer&vol=0.8&muted=false"><param name="allowscriptaccess" value="always"><param name="bgcolor" value="#000000"><param name="wmode" value="opaque"></object></div>

在支持HTML5的浏览器内变成:
 

<div id="jplayer" style="width: 0px; height: 0px;"><img id="jp_poster_0" style="width: 0px; height: 0px; display: none;"><audio id="jp_audio_0" preload="metadata" src="./resources/message.mp3"></audio></div>

完成装载后就是触发播放的事件了。

2. 触发播放提示音事件
 

$("#jplayer").jPlayer('play');

3. 循环播放函数,每5秒播放一次提示音
 

function PlaySound() { 

    $("#jplayer").jPlayer('play'); 

    setInterval("PlaySound()", 5000); 

    return true; 

}

附录:

1. 解决无法自动播放提示音的问题

如果在加载JQplayer后,立刻运行播放的触发事件,没有任何效果!具体是什么原因我也不太清楚,估计是因为音频文件没有加载上。

2. 解决方法是让触发事件等待5秒中执行。

setTimeout("$('#jplayer').jPlayer('play')", 5000);

加载完页面,5秒后自动播放提示音。

希望本文所述对大家的jquery程序设计有所帮助。

Javascript 相关文章推荐
利用jQuery操作对象数组的实现代码
Apr 27 Javascript
基于JQUERY的多级联动代码
Jan 24 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
Jun 30 Javascript
JavaScript知识点总结(十)之this关键字
May 31 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
Three.js快速入门教程
Sep 09 Javascript
BootStrapTable 单选及取值的实现方法
Jan 10 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
layui实现文件或图片上传记录
Aug 28 Javascript
触屏中的JavaScript事件分析
Feb 06 #Javascript
JavaScript事件委托技术实例分析
Feb 06 #Javascript
JavaScript比较两个对象是否相等的方法
Feb 06 #Javascript
JavaScript 异常处理 详解
Feb 06 #Javascript
jquery中change()用法实例分析
Feb 06 #Javascript
javaScript的函数对象的声明详解
Feb 06 #Javascript
javascript实用方法总结
Feb 06 #Javascript
You might like
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP使用数组实现队列
2012/02/05 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
js 替换
2008/02/19 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
Java  Spring 事务回滚详解
2016/10/17 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
python实现的简单猜数字游戏
2015/04/04 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Python 复平面绘图实例
2019/11/21 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
中学教师岗位职责
2013/11/26 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
治安消防安全责任书
2014/07/23 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript