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 相关文章推荐
javascript 拖放效果实现代码
Jan 22 Javascript
jquery插件uploadify实现带进度条的文件批量上传
Dec 13 Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 Javascript
JS基于面向对象实现的多个倒计时器功能示例
Feb 28 Javascript
老生常谈javascript的面向对象思想
Aug 22 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 Javascript
js实现简单的贪吃蛇游戏
Apr 23 Javascript
原生JavaScript实现弹幕组件的示例代码
Oct 12 Javascript
JavaScript实现无限轮播效果
Nov 19 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
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
python计算两个矩形框重合百分比的实例
2018/11/07 Python
python 搜索大文件的实例代码
2019/07/08 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
python实现超级玛丽游戏
2020/03/18 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
新浪网技术部笔试题
2016/08/26 面试题
文明教师事迹材料
2014/01/16 职场文书
医务人员自我评价
2014/01/26 职场文书
优秀老师事迹材料
2014/02/05 职场文书
对祖国的寄语大全
2014/04/11 职场文书
模特大赛策划方案
2014/05/28 职场文书
就业意向书
2014/07/29 职场文书
甜品店创业计划书
2014/09/21 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
学历证明范文
2015/06/16 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS