为你的html5网页添加音效示例


Posted in HTML / CSS onApril 03, 2014

为交互添加恰当的音效,常常能改善用户体验。在我们所熟悉的windows里,清空回收站的碎纸声就是很好的例子。
下面是一个利用HTML5, Jquery,给页面添加音效的小组件(只是添加音效,并不是播放器)。
其实很简单,就是利用HTML5中的audio标签,播放声音。不过为了照顾IE 6-8,还是用上了bgsound。
兼容所有主流浏览器(非主流不在考虑之列了)
闲话少说,上代码:

复制代码
代码如下:

<a href="#" class="fui-btn">播放</a>
<script>
/*Play sound component*/
/*
* profile: JSON, {src:'chimes.wav',altSrc:'',loop:false}
*
* setSrc: Function, set the source of sound
* play: Function, play sound
*/
if (!FUI){
var FUI = {};
}
FUI.soundComponent=function(profile){
this.profile={
src:'',

  //音频文件地址
altSrc:'',

//备选音频文件地址 (不同浏览器支持的音频格式不同,可见附表)
loop:false

  //是否循环播放,这个参数现在没有用上
};
if(profile) {
$.extend(this.profile,profile);
}
this.soundObj=null;
this.isIE = !-[1,];
/*这个方法是前辈大牛发明的,利用ie跟非ie中JScript处理数组最后一个逗号“,”的差异,
不过对于IE 9,这个办法就无效了,但此处正合我用,因为IE 9支持audio*/
this.init();
};
FUI.soundComponent.prototype={
init:function(){
this._setSrc();
},
_setSrc:function(){
if(this.soundObj){
if(this.isIE){
this.soundObj[0].src=this.profile.src;
}else{
this.soundObj[0].innerHTML='<source src="'+this.profile.src+'" />
<source src="'+this.profile.altSrc+'" />';
}
}else{
if(this.isIE){
this.soundObj=$
('<bgsound volume="-10000" loop="1" src="'+this.profile.src+'">').appendTo('body');
//-10000是音量的最小值。先把音量关到最小,免得一加载就叮的一声,吓到人。
}else{
this.soundObj=$('<audio preload="auto" autobuffer>
<source src="'+this.profile.src+'" />
<source src="'+this.profile.altSrc+'" />
</audio>').appendTo('body');
}
}
},
setSrc:function(src,altSrc){
this.profile.src=src;
if(typeof altSrc!='undefined'){
this.profile.altSrc=altSrc;
}
this._setSrc();
},
play:function(){
if(this.soundObj){
if(this.isIE){
this.soundObj[0].volume = 1;

//把音量打开。
this.soundObj[0].src = this.profile.src;
}else{
this.soundObj[0].play();
}
}
}
};
var sd=new FUI.soundComponent({src:'ding.wav',altSrc:'ding.mp3'});
$('.fui-btn').bind('click',function(e){
sd.play();
});
</script>

HTML / CSS 相关文章推荐
CSS3 优势以及网页设计师如何使用CSS3技术
Jul 29 HTML / CSS
CSS3正方体旋转示例代码
Aug 08 HTML / CSS
html5+css3气泡组件的实现
Nov 21 HTML / CSS
利用css3-animation实现逐帧动画效果
Mar 10 HTML / CSS
使用CSS3来代替JS实现交互
Aug 10 HTML / CSS
10分钟理解CSS3 Grid布局
Dec 20 HTML / CSS
CSS3制作3D立方体loading特效
Nov 09 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
Dec 22 HTML / CSS
canvas学习笔记之2d画布基础的实现
Feb 21 HTML / CSS
HTML5标签与HTML4标签的区别示例介绍
Jul 18 HTML / CSS
详解Html5 监听拦截Android返回键方法
Apr 18 HTML / CSS
css3 实现文字闪烁效果的三种方式示例代码
Apr 25 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
Apr 02 #HTML / CSS
简单html5代码获取地理位置
Mar 31 #HTML / CSS
HTML5注册页面示例代码
Mar 27 #HTML / CSS
html5实现微信打飞机游戏
Mar 27 #HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
Mar 26 #HTML / CSS
html5适合移动应用开发的12大特性
Mar 19 #HTML / CSS
用html5实现语音搜索框的方法
Mar 18 #HTML / CSS
You might like
PHP中的日期及时间
2006/11/23 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
用js实现计算加载页面所用的时间
2010/04/02 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
python3使用urllib模块制作网络爬虫
2016/04/08 Python
详解python中的线程
2018/02/10 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
Django中的forms组件实例详解
2018/11/08 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
经典C++面试题一
2016/11/06 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
资产评估专业大学生求职信
2013/09/29 职场文书
学院书画协会部门职责
2013/11/28 职场文书
英文自荐信
2013/12/15 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
社区平安建设方案
2014/05/25 职场文书
活动主持人开场白
2015/05/28 职场文书
七年级数学教学反思
2016/02/17 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
Java使用HttpClient实现文件下载
2022/08/14 Java/Android