为你的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学习之2D转换功能详解
Dec 23 HTML / CSS
一款利用html5和css3实现的3D立方体旋转效果教程
Apr 26 HTML / CSS
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
Aug 19 HTML / CSS
浅析与CSS3的loading动画加载相关的transition优化
May 18 HTML / CSS
CSS3中box-shadow的用法介绍
Jul 15 HTML / CSS
关于box-sizing的全面理解
Jul 28 HTML / CSS
html5 跨文档消息传输示例探讨
Apr 01 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
Mar 24 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
Mar 25 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
Apr 15 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
Nov 02 HTML / CSS
html5 figure和figcaption的使用方法
Sep 10 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中输出转义JavaScript代码的实现代码
2011/04/22 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
Python中统计函数运行耗时的方法
2015/05/05 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
python使用代理ip访问网站的实例
2018/05/07 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
传媒专业推荐信范文
2013/11/23 职场文书
还款承诺书范文
2014/05/20 职场文书
护校行动方案
2014/05/31 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
配置Kubernetes外网访问集群
2022/03/31 Servers
vue如何清除浏览器历史栈
2022/05/25 Vue.js
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技