html5 音乐播放器 audio 标签使用概述


Posted in HTML / CSS onJuly 15, 2013

复制代码
代码如下:

<audio> 标签属性:src:音乐的URLpreload:预加载autoplay:自动播放loop:循环播放controls:浏览器自带的控制条
<audioid="media"src="http://www.abc.com/test.mp3"controls></audio>
<video> 标签属性:src:视频的URLposter:视频封面,没有播放时显示的图片preload:预加载autoplay:自动播放loop:循环播放controls:浏览器自带的控制条width:视频宽度height:视频高度
<videoid="media"src="http://www.abc.com/test.mp4"controls width="400px"heigt="400px"></video>

获取HTMLVideoElement和HTMLAudioElement对象
复制代码
代码如下:

//audio可以直接通过new创建对象
Media = newAudio("http://www.abc.com/test.mp3");
//audio和video都可以通过标签获取对象
Media = document.getElementById("media");

Media方法和属性:
HTMLVideoElement 和 HTMLAudioElement 均继承自 HTMLMediaElement
复制代码
代码如下:

//错误状态
Media.error; //null:正常
Media.error.code; //1.用户终止 2.网络错误 3.解码错误 4.URL无效
//网络状态
Media.currentSrc; //返回当前资源的URL
Media.src = value; //返回或设置当前资源的URL
Media.canPlayType(type); //是否能播放某种格式的资源
Media.networkState; //0.此元素未初始化 1.正常但没有使用网络 2.正在下载数据 3.没有找到资源
Media.load(); //重新加载src指定的资源
Media.buffered; //返回已缓冲区域,TimeRanges
Media.preload; //none:不预载 metadata:预载资源信息 auto:
//准备状态
Media.readyState; //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA
Media.seeking; //是否正在seeking
//回放状态
Media.currentTime = value; //当前播放的位置,赋值可改变位置
Media.startTime; //一般为0,如果为流媒体或者不从0开始的资源,则不为0
Media.duration; //当前资源长度 流返回无限
Media.paused; //是否暂停
Media.defaultPlaybackRate = value;//默认的回放速度,可以设置
Media.playbackRate = value;//当前播放速度,设置后马上改变
Media.played; //返回已经播放的区域,TimeRanges,关于此对象见下文
Media.seekable; //返回可以seek的区域 TimeRanges
Media.ended; //是否结束
Media.autoPlay; //是否自动播放
Media.loop; //是否循环播放
Media.play(); //播放
Media.pause(); //暂停
//控制
Media.controls;//是否有默认控制条
Media.volume = value; //音量
Media.muted = value; //静音
//TimeRanges(区域)对象
TimeRanges.length; //区域段数
TimeRanges.start(index) //第index段区域的开始位置
TimeRanges.end(index) //第index段区域的结束位置
事件:
eventTester = function(e){
Media.addEventListener(e,function(){
console.log((newDate()).getTime(),e);
});
}
eventTester("loadstart"); //客户端开始请求数据
eventTester("progress"); //客户端正在请求数据
eventTester("suspend"); //延迟下载
eventTester("abort"); //客户端主动终止下载(不是因为错误引起),
eventTester("error"); //请求数据时遇到错误
eventTester("stalled"); //网速失速
eventTester("play"); //play()和autoplay开始播放时触发
eventTester("pause"); //pause()触发
eventTester("loadedmetadata"); //成功获取资源长度
eventTester("loadeddata"); //
eventTester("waiting"); //等待数据,并非错误
eventTester("playing"); //开始回放
eventTester("canplay"); //可以播放,但中途可能因为加载而暂停
eventTester("canplaythrough"); //可以播放,歌曲全部加载完毕
eventTester("seeking"); //寻找中
eventTester("seeked"); //寻找完毕
eventTester("timeupdate"); //播放时间改变
eventTester("ended"); //播放结束
eventTester("ratechange"); //播放速率改变
eventTester("durationchange"); //资源长度改变
eventTester("volumechange"); //音量改变

自己写的一段js:
复制代码
代码如下:

$(function() {
var p = new Player();
p.read("play");
$("#stop").click(function() {
p.pause();
});
$("#start").click(function() {
p.play();
});
$("#show").click(function() {
alert(p.duration());
});
setInterval(function() {
$("#currentTime").text(p.currentTime());
},1000);
});
function Player() {};
Player.prototype = {
box : new Object(),
read : function(id) {
this.box = document.getElementById(id);
},
play : function() {
this.box.play();
},
pause : function() {
this.box.pause();
},
src:function(url){
this.box.src=url;
},
currentTime:function(){
return (this.box.currentTime/60).toFixed(2);
}
};
Player.prototype.duration=function(){
return (this.box.duration/60).toFixed(2);
};
HTML / CSS 相关文章推荐
纯CSS改变webkit内核浏览器的滚动条样式
Apr 17 HTML / CSS
CSS3毛玻璃效果(blur)有白边问题的解决方法
Nov 15 HTML / CSS
HTML5 Canvas绘制文本及图片的基础教程
Mar 14 HTML / CSS
HTML5头部标签的一些常用信息小结
Oct 23 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
Mar 13 HTML / CSS
HTML5实现移动端弹幕动画效果
Aug 01 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
Sep 11 HTML / CSS
详解如何在登录过期后跳出Ifram框架
Sep 10 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 HTML / CSS
html+css实现环绕倒影加载特效
Jul 07 HTML / CSS
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
Oct 16 HTML / CSS
CSS使用Flex和Grid布局实现3D骰子
Aug 05 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
Jul 15 #HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
Jul 11 #HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
Jul 11 #HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
Jul 11 #HTML / CSS
HTML5验证以及日期显示的实现详解
Jul 05 #HTML / CSS
html标签之Object和EMBED标签详解
Jul 04 #HTML / CSS
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
Jul 04 #HTML / CSS
You might like
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
javascript 打印页面代码
2009/03/24 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
多个应用共存的Django配置方法
2018/05/30 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
为什么需要版本控制
2016/10/28 面试题
重阳节活动总结
2014/08/27 职场文书
审计班子对照检查材料
2014/08/27 职场文书
大一新生检讨书
2014/10/29 职场文书
师范生见习报告
2014/10/31 职场文书
2014年销售工作总结
2014/12/01 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
MySQL 原理与优化之Update 优化
2022/08/14 MySQL