源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 301|回复: 20

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

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2015-2-6 10:29:08 | 显示全部楼层 |阅读模式
这篇文章主要介绍了jquery控制背景音乐开关与自动播放提示音的方法,实例分析了背景音乐开关的技巧与自动播放提示音的常见用法,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

回复

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-17 04:15:10 | 显示全部楼层
还有人在不。。。。。。。。。。啊
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-18 11:57:16 | 显示全部楼层
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

61

积分

注册会员

Rank: 2

积分
61
发表于 2022-8-22 07:58:23 | 显示全部楼层
。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

499

积分

中级会员

Rank: 3Rank: 3

积分
499
发表于 2022-8-22 12:38:24 | 显示全部楼层
看看怎么样再说
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

120

积分

注册会员

Rank: 2

积分
120
发表于 2022-10-9 06:43:09 | 显示全部楼层
大家都不容易!
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2022-11-23 00:26:25 | 显示全部楼层
看看怎么样再说
回复 支持 反对

使用道具 举报

29

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2023-2-23 21:29:01 | 显示全部楼层
撒房产税陈飞飞
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-8-18 06:09:52 | 显示全部楼层
hi哦回复iOS就看见
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-8 14:40:52 | 显示全部楼层
哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-12-5 10:16 , Processed in 0.076171 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表