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 插件模板 制作jquery插件的朋友可以参考下
Mar 17 Javascript
jQuery带进度条全屏图片轮播特效代码分享
Jun 28 Javascript
BootStrap的Datepicker控件使用心得分享
May 25 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
Jan 15 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
Mar 01 Javascript
vue中添加mp3音频文件的方法
Mar 02 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
使用js获取身份证年龄的示例代码
Dec 11 Javascript
vue组件的路由高亮问题解决方法
May 11 Vue.js
触屏中的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对象相互引用的内存溢出实例分析
2014/08/28 PHP
学习php开源项目的源码指南
2014/12/21 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python中实现三目运算的方法
2015/06/21 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
win10安装python3.6的常见问题
2020/07/01 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
新娘父亲婚礼致辞
2014/01/16 职场文书
药品促销活动方案
2014/02/14 职场文书
充分就业社区汇报材料
2014/05/07 职场文书
化工工艺设计求职信
2014/06/25 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
三八妇女节主持词
2015/07/04 职场文书
Python合并多张图片成PDF
2021/06/09 Python
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
Python实现老照片修复之上色小技巧
2021/10/16 Python
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技