为你的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 相关文章推荐
Web前端绘制0.5像素的几种方法
Aug 11 HTML / CSS
CSS3 简单又实用的5个属性
Mar 04 HTML / CSS
让IE6支持css3,让 IE7、IE8 都支持CSS3
Oct 09 HTML / CSS
css3实现一款模仿iphone样式的注册表单
Mar 20 HTML / CSS
解决img标签上下出现间隙的方法
Dec 14 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
Sep 05 HTML / CSS
canvas学习笔记之2d画布基础的实现
Feb 21 HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
Dec 09 HTML / CSS
使用CSS实现一个搜索引擎的原理解析
Sep 25 HTML / CSS
企业开发CSS命名BEM代码规范实践
Feb 12 HTML / CSS
CSS SandBox应用场景及常见问题
Jun 25 HTML / CSS
box-shadow单边阴影的实现
May 21 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+xslt在windows平台上
2006/10/09 PHP
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
讲解Python中的标识运算符
2015/05/14 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
pybind11在Windows下的使用教程
2019/07/04 Python
django 信号调度机制详解
2019/07/19 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
MYSQL支持事务吗
2013/08/09 面试题
正隆泰信息技术有限公司上机题
2012/06/14 面试题
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
校园报刊亭创业计划书
2014/01/02 职场文书
环保倡议书100字
2014/05/15 职场文书
诉前财产保全担保书
2014/05/20 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书