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. CentOS 7 结构体GCC 4.8.2 32位编译环境

    centos 7 结构体gcc 32位编译环境 1介绍 1.1背景 学习新 C++ 2011和C11标准. 1.2使用软件 CentOS 7(Linux version 3.10.0-123.el7. ...

  2. UVA10537 Toll! Revisited

    difkstra + 路径输出 The Toll! Revisited Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...

  3. ReSharper 8.1支持Visual Studio 2013的特色——超强滚动条

    自ReSharper 8.1发布以来,便支持Visual Studio 2013.其中peek功能是它的亮点,滚动条则是它的特色. 接下来小编将展示ReSharper在Visual Studio 20 ...

  4. 安装SQL Server 2005 - 初学者系列 - 学习者系列文章

    初学者阶段,建议从数据库为基础入手进行学习. 下面介绍微软的SQL Server 2005数据库的安装. 首先,从下列地址获取SQL Server 2005的安装程序. ed2k://|file|cs ...

  5. BitNami-Redmine安装和VisualSVN-Server配合使用

    原文:BitNami-Redmine安装和VisualSVN-Server配合使用 BitNami-Redmine安装和VisualSVN-Server配合使用 2011-05-04 10:48:22 ...

  6. 常用在网站上的30个jQuery插件

    jQuery插件是网页设计师最喜欢的.从图像滑块,图像画廊和导航插件,它们是如此众多,如此多样,如此惊人的和互动可以制作美化网站.在本文的在30个插件中,我认为必须在网站建设时用到.当然你现在可能不善 ...

  7. 我的Android 4 学习系列之Intent 和 Broadcast Reciever

    目录 Intent 简介 使用隐式和显式Intent启动Activity.子Acitivity和Service 使用Linkify 使用Broadcast Intent 广播事件 使用 Pending ...

  8. DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计?

    DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计? 写在前面 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领域模型的 ...

  9. Http Pipeline详细分析(下)

    Http Pipeline详细分析(下) 文章内容 接上面的章节,我们这篇要讲解的是Pipeline是执行的各种事件,我们知道,在自定义的HttpModule的Init方法里,我们可以添加自己的事件, ...

  10. Toad for Oracle的安装

    分享一下Oracle 10gToad for Oracle的安装步骤   三年前用过Oracle,单纯的“用过”,主要就是说对数据库的一些操作,还不包含创建一些存储过程之类的,所以对Oracle仅仅只 ...