为你的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
基于css3仿造window7的开始菜单
Jun 17 HTML / CSS
使用css3实现的tab选项卡代码分享
Dec 09 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
Jul 17 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
Nov 02 HTML / CSS
详解利用canvas实现环形进度条的方法
Jun 12 HTML / CSS
HTML5安全介绍之内容安全策略(CSP)简介
Jul 10 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
Jan 07 HTML / CSS
HTML中fieldset标签概述及使用方法
Feb 01 HTML / CSS
canvas 如何绘制线段的实现方法
Jul 12 HTML / CSS
CSS font-variation 可变字体的魅力(实例详解)
Mar 03 HTML / CSS
HTML页面点击按钮关闭页面的多种方式
Dec 24 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
一个MYSQL操作类
2006/11/16 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python修改字典键(key)的方法
2019/08/05 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
python 线程的五个状态
2020/09/22 Python
Django中使用Celery的方法步骤
2020/12/07 Python
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
武侯祠导游词
2015/02/04 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
运动会开幕式致辞
2015/07/29 职场文书
青年教师听课心得体会
2016/01/15 职场文书
详解Python常用的魔法方法
2021/06/03 Python
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android
python实现层次聚类的方法
2021/11/01 Python
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript