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 相关文章推荐
IE下使用cloneNode注意事项分享
Nov 22 Javascript
javascript中AJAX用法实例分析
Jan 30 Javascript
Javascript中this关键字的一些小知识
Mar 15 Javascript
jQuery中next方法用法实例
Apr 24 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
Oct 29 Javascript
jQuery Validate表单验证入门学习
Dec 18 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
Sep 25 Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 Javascript
vue插槽slot的理解和使用方法
Apr 03 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 Javascript
使用PDF.js渲染canvas实现预览pdf的效果示例
Apr 17 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 之Section与Cookie使用总结
2012/09/14 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
javascript面向对象编程代码
2011/12/19 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
微信小程序支付及退款流程详解
2017/11/30 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
Python中统计函数运行耗时的方法
2015/05/05 Python
Python sys.argv用法实例
2015/05/28 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
某公司部分笔试题
2013/11/05 面试题
三严三实·严以用权心得体会
2016/01/12 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
python turtle绘图命令及案例
2021/11/23 Python
解决 redis 无法远程连接
2022/05/15 Redis