HTML5中的新元素标签

  1. src:音频文件路径。
  2. autobuffer:设置是否在页面加载时自动缓冲音频。
  3. autoplay:设置音频是否自动播放。
  4. loop:设置音频是否要循环播放。
  5. controls:属性供添加播放、暂停和音量控件。

这些属性和<video>元素标签的属性很类似

如何工作

<audio src="song.mp3"></audio>

同样 <audio> 与 </audio> 之间插入的内容是供不支持 audio 元素的浏览器显示的:

<audio src="song.ogg" controls="controls">
Your browser does not support the audio tag.
</audio>

常用的控制函数:

  1. load():加载音频、视频软件
  2. play():加载并播放音频、视频文件或重新播放暂停的的音频、视频
  3. pause():暂停出于播放状态的音频、视频文件
  4. canPlayType(obj):测试是否支持给定的Mini类型的文件

只读的媒体属性:

  1. duration获取媒体文件的播放时长,以s为单位,如果无法获取,则为NaN
  2. paused如果媒体文件被暂停,则返回true,否则返回false
  3. ended如果媒体文件播放完毕,则返回true
  4. startTime返回起始播放时间
  5. error返回错误代码
  6. currentSrc以字符串形式返回正在播放或已加载的文件

可脚本控制的属性值:

  1. autoplay:自动播放已经加载的的媒体文件
  2. loop为true:的时候则设定为自动播放
  3. currentTime:以s为单位返回从开始播放到目前所花的时间
  4. controls:显示或者隐藏用户控制界面
  5. volume:音量值,从0.0至1.0之间
  6. muted:设置是否静音
  7. autobuffer:是否进行缓冲加载

"我"的成长独白 ESTELLE'S AUDIO PLAYER

首先,先介绍一下"我"自己,和你一样,我也是有生命的个体,但 (ke) 是 (xi) ,我比你更有灵性 [ 傲娇 ]

audio.html

<body>

<audio id='audio'>你的浏览器不支持喔!</audio>

<div class='MusicPanel'>
<div class='PanelLeft'><div class='circle'><span class='icon glyphicon-heart'></span></div></div> <!-- Like Button --> <div class='PanelRight'>
<div class='Prev'><span class='icon glyphicon-step-backward'></span></div> <!-- Prev Song Button -->
<div id='Play' class='Play'><span class='icon glyphicon-play'></span></div> <!-- Play & Pause Button -->
<div class='Next'><span class='icon glyphicon-step-forward'></span></div> <!-- Next Song Button -->
<div class="Song"><span class='SongAuthor'>Greyson Chance</span></br><span class='SongName'>Summertrain</span></div> <!-- Song Title --> <div class="Process"> <!-- Process -->
<div class="ProcessAll" ></div> <!-- ProcessAll -->
<div class="ProcessNow"></div> <!-- ProcessNow -->
<div class="SongTime">00:00&nbsp;|&nbsp;00:00</div> <!-- Time -->
</div> <!-- Process End -->
</div> <!-- PanelRight End -->
</div> <!-- MusicPanel End --> </body>

进度条逻辑

绘制两条重叠的进度条,一条指示总进度 ProcessAll,另一条指示已播放的进度 ProcessNow
根据已播放的时间占总时间比,设置 ProcessNow 下 Width 的值,根据CSS的层叠规范,后写的 ProcessNow 的颜色层在最高层

详见 audio.JS 函数 TimeSpan()

其次,我不能不穿衣服呀,我需要一件合适的袈裟,人见人爱,花见花开,车见车那啥儿,嘿嘿

audio.css

.MusicPanel{
width: 400px;
height: 100px;
margin: 0 auto;
border:1px solid #76dba3;
}
.MusicPanel .PanelLeft{
width: 100px;
height: 100px;
display: inline-block;
text-align: center;
background: #76dba3;
}
.MusicPanel .PanelRight{
width: 260px;
height: 80px;
display: inline-block;
padding: 10px 20px;
position: absolute;
background: #fdfef6;
}
.Prev,.Play,.Next{
display: inline-block;
margin-right: 5px;
}
.Prev,.Next{
filter:alpha(opacity=30);
-moz-opacity:0.3;
opacity:0.3;
cursor: not-allowed;
}
.Prev:hover,.Next:hover{
filter:alpha(opacity=30);
-moz-opacity:0.3;
opacity:0.3;
cursor: not-allowed;
}
.Song{
display: inline-block;
padding-left: 15px;
}
.SongTime{
float: right;
font-family: cursive,microsoft Yahei;
font-size: 14px;
color:#ee8a87;
}
.Song:hover{
cursor: default;
}
.SongAuthor{
font-family: cursive,microsoft Yahei;
color:#ee8a87;
font-size: 18px;
}
.SongName{
font-family: cursive,microsoft Yahei;
color:#ee8a87;
font-size: 13px;
}
.PanelRight .icon{
display: inline-block;
color:#f06d6a;
font-size:22px;
transition:0.3s;
}
.PanelRight .Play .icon:hover {
cursor: pointer;
color: #dd2924;
} .PanelLeft .circle{
width: 40px;
height: 40px;
display: inline-block;
margin-top: 30%;
line-height: 40px;
border-radius: 50%;
border:1px solid white;
transition:0.3s;
}
.icon{
font-family: "Glyphicons Halflings";
}
.circle span{
color:white;
font-size: 14px;
transition:0.05s;
}
.circle:hover{
cursor: pointer;
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.6), 0px 2px 10px 0px rgba(0, 0, 0, 0.4);
background: #f06d6a;
border:1px solid #f06d6a;
}
.circle:hover span{
font-size: 18px;
}
.Process{
margin-top: 15px;
}
.ProcessAll{
width: 260px;
float: left;
height: 3px;
cursor: pointer;
background-color:rgba(0,0,0,0.2);
}
.ProcessNow{
width: 0px;
float: left;
position: absolute;
height: 3px;
cursor: pointer;
background-color:#f06d6a;
}

有了身体,也穿了袈裟,现在的我仍然只是一个空壳,束缚自由,无法行动 [ 想哭 ]
"我" 还需要 js 作为权杖,让我能够行走,或者给我一匹 JQuery,让我能够策马扬鞭,驰骋沙场,很高兴的是,我拥有了后者 [ 骄傲 ]

audio.js

$(document).ready(function() {

    var audio = document.getElementById("audio");
audio.src = "/demo/summertrain.mp3"; $("#Play").on('click',function () {
if(audio.paused){
if( $(this).children().hasClass('glyphicon-play') ) {
$("#Play").children("span").removeClass("glyphicon-play").addClass("glyphicon-pause");
Play();
}
}
else{
$("#Play").children("span").removeClass("glyphicon-pause").addClass("glyphicon-play");
Pause();
}
});// Button cilick function Play() {
audio.play();
TimeSpan();
} //Play() function Pause() {
audio.pause();
} //Pause() function TimeSpan() {
var ProcessNow = 0;
setInterval(function () {
var ProcessNow = (audio.currentTime / audio.duration) * 260;
$(".ProcessNow").css("width", ProcessNow);
var currentTime = timeFormat(audio.currentTime);
var timeAll = timeFormat(TimeAll());
$(".SongTime").html(currentTime + " | " + timeAll);
}, 1000);
} //TimeSpan() function timeFormat(number) {
var minute = parseInt(number / 60);
var second = parseInt(number % 60);
minute = minute >= 10 ? minute : "0" + minute;
second = second >= 10 ? second : "0" + second;
return minute + ":" + second;
} //timeFormat() function TimeAll() {
return audio.duration;
} //TimeAll() })

"纽扣" ( ICON ) 是定制的Bootstrap,多亏了定制,不然的话得又得重新修补袈裟累成狗 [舒口气]

This is me,sa flowers,papapapa ~

Let's Enjoy :Where did you go

附录:

Audio 对象属性

属性 描述
audioTracks 返回表示可用音频轨道的 AudioTrackList 对象。
autoplay 设置或返回是否在就绪(加载完成)后随即播放音频。
buffered 返回表示音频已缓冲部分的 TimeRanges 对象。
controller 返回表示音频当前媒体控制器的 MediaController 对象。
controls 设置或返回音频是否应该显示控件(比如播放/暂停等)。
crossOrigin 设置或返回音频的 CORS 设置。
currentSrc 返回当前音频的 URL。
currentTime 设置或返回音频中的当前播放位置(以秒计)。
defaultMuted 设置或返回音频默认是否静音。
defaultPlaybackRate 设置或返回音频的默认播放速度。
duration 返回音频的长度(以秒计)。
ended 返回音频的播放是否已结束。
error 返回表示音频错误状态的 MediaError 对象。
loop 设置或返回音频是否应在结束时再次播放。
mediaGroup 设置或返回音频所属媒介组合的名称。
muted 设置或返回是否关闭声音。
networkState 返回音频的当前网络状态。
paused 设置或返回音频是否暂停。
playbackRate 设置或返回音频播放的速度。
played 返回表示音频已播放部分的 TimeRanges 对象。
preload 设置或返回音频的 preload 属性的值。
readyState 返回音频当前的就绪状态。
seekable 返回表示音频可寻址部分的 TimeRanges 对象。
seeking 返回用户当前是否正在音频中进行查找。
src 设置或返回音频的 src 属性的值。
textTracks 返回表示可用文本轨道的 TextTrackList 对象。
volume 设置或返回音频的音量。

Audio 对象方法

方法 描述
addTextTrack() 向音频添加新的文本轨道。
canPlayType() 检查浏览器是否能够播放指定的音频类型。
fastSeek() 在音频播放器中指定播放时间。
getStartDate() 返回新的 Date 对象,表示当前时间线偏移量。
load() 重新加载音频元素。
play() 开始播放音频。
pause() 暂停当前播放的音频。

HTML5之Audio音频标签学习的更多相关文章

  1. H5 <audio> 音频标签自定义样式修改以及添加播放控制事件

    H5 <audio> 音频标签自定义样式修改以及添加播放控制事件 Dandelion_drq 关注 2017.08.28 14:48* 字数 331 阅读 2902评论 3喜欢 3 说明: ...

  2. HTML5新增的音频标签、视频标签

    我们所说的H5就是我们所说的HTML5中新增的语言标准 一.音频标签 在HTML5当中有一个叫做audio的标签,可以直接引入一段音频资源放到我们的网页当中 格式: <audio autopla ...

  3. html5 的<audio> 音频 audio的“坑”

    <audio>标签是html5的一个非常有意义的特性.告别的flash的时代.它的属性有: autoplay:音频就绪后马上播放 controls:出现该属性,向用户显示播放的控件. lo ...

  4. Html5中 视频 音频标签 进度条问题

    最近项目中使用Html5的video和audio标签来在线播放视频和音频文件,但是遇到个奇葩的问题,页面上播放之后进度条无效, 查看w3c之后发现html代码并没有什么不同,之后猜想如果用静态的htm ...

  5. h5中的audio音频标签与对应的dom对象

    HTML5中提供了一个<audio>标签,同时也提供了一个Audio对象给JavaScript去操作,这个对象属于HTML的DOM对象. H5中的<audio>标签 此标签是H ...

  6. 【HTML5】audio音频

    当前,audio 元素支持三种音频格式:   IE 9 Firefox 3.5 Opera 10.5 Chrome 3.0 Safari 3.0 Ogg Vorbis   √ √ √   MP3 √ ...

  7. <audio>音频标签

    <audio ref="audio" @canplay="ready" @error="error"  @timeupdate=&qu ...

  8. HTML5 学习总结(一)——HTML5概要与新增标签

    一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电.触摸 ...

  9. HTML5 学习笔记(一)——HTML5概要与新增标签

    目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...

随机推荐

  1. NCache实现Oracle数据与分布式缓存数据同步的3个步骤

    多层次结构的应用程序是目前发展的趋势,这种程序都需要庞大的数据库支持.而数据传输的能力直接影响程序性能,成为程序可扩展性的瓶颈.因此很多开发者开始在程序中使用内存分布式缓存来提高程序性能. 同时,内存 ...

  2. C#中使用消息队列RabbitMQ

    在C#中使用消息队列RabbitMQ 2014-10-27 14:41 by qy1141, 745 阅读, 2 评论, 收藏, 编辑 1.什么是RabbitMQ.详见 http://www.rabb ...

  3. 【推荐分享】大量Python电子书籍教程pdf合集下载

    网上搜集的,点击即可下载,希望提供给有需要的人^_^   O'Reilly.Python.And.XML.pdf 2.02 MB   OReilly - Programming Python 2nd. ...

  4. Vim插件之插件管理器Vundle

    Vim插件之插件管理器Vundle 1.介绍下载 相比Sublime.Text2等现代编辑器,Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim下的几个文件夹中,配置Vim的过程, 就是在 ...

  5. Back to High School Physics - UVa10071

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/uva10071.html 题目描述 Pr ...

  6. 迁移Model元数据设置项

    .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序) 阅读目录: 1.需求背景介绍(Model元数据设置项应该与View绑定而非ViewModel) 1 ...

  7. WCF基于MSMQ的事件代理服务

    前言 公司目前楼主负责的项目正在改版升级,对之前的服务也在作调整,项目里有个操作日志的模块,就决定把日志单独提取出来,做个日志服务,所以就有了这篇文章 正文 MSMQ作为消息队列,B/S项目调用日志服 ...

  8. MVC中用Jpaginate分页

    MVC中用Jpaginate分页 So easy!(兼容ie家族)   看过几款分页插件,觉得Jpaginate比较简约,样式也比较容易的定制,而且体验也比较好,支持鼠标滑动效果.先上效果图: 整个过 ...

  9. android Fragment 用法小结

    Fragment 是android 3.0引入的新API,是作为Activity的子模块,必须嵌入Activity才能使用. Activity 与 Fragment的关系: 一.依附性: 1. Fra ...

  10. ios学习之路四(新建Sprite Kit 项目的时候出现apple LLVM 5.0 error)

    在新建sprite kit 项目的时候出现"apple LLVM 5.0 error" 解决方法 在网上搜索,stackoverflow 上是这么说的点击打开链接.按照他的我也没解 ...