为你的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 相关文章推荐
HTML5 CSS3给网站设计带来出色效果
Jul 16 HTML / CSS
CSS3 选择器 基本选择器介绍
Jan 21 HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
Sep 02 HTML / CSS
几个CSS3的flex弹性盒模型布局的简单例子演示
May 12 HTML / CSS
使用CSS3中的calc()属性来以算式表达尺寸数值
Jun 06 HTML / CSS
巧用CSS3的calc()宽度计算做响应模式布局的方法
Mar 22 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
Jun 03 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
Mar 01 HTML / CSS
Html5实现文件异步上传功能
May 19 HTML / CSS
AmazeUI 网格的实现示例
Aug 13 HTML / CSS
使用canvas仿Echarts实现金字塔图的实例代码
Nov 11 HTML / CSS
css中有哪些方式可以隐藏页面元素及区别
Jun 16 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python判断两个对象相等的原理
2017/12/12 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
python groupby 函数 as_index详解
2019/12/16 Python
python数字类型math库原理解析
2020/03/02 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
如何使用Python调整图像大小
2020/09/26 Python
Python timeit模块原理及使用方法
2020/10/10 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
国贸专业的职业规划书
2014/03/15 职场文书
市场部岗位职责
2015/02/12 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
纪委立案决定书
2015/06/24 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
GPU服务器的多用户配置方法
2022/07/07 Servers