HTML5项目笔记4:使用Audio API设计绚丽的HTML5音乐播放器
创作时间:
作者:
@小白创作中心
HTML5项目笔记4:使用Audio API设计绚丽的HTML5音乐播放器
引用
1
来源
1.
https://www.jmwww.net/file/42858.html
HTML5的Audio元素为网页开发者提供了创建自定义音频播放器的能力。本文将详细介绍如何使用HTML5的Audio API设计一个功能完善的音乐播放器,包括浏览器支持情况、常用控制函数、媒体属性以及实际的代码实现。
HTML5 有两个很炫的元素,就是Audio和 Video,可以用他们在页面上创建音频播放器和视频播放器,制作一些效果很不错的应用。
无论是视屏还是音频,都是一个容器文件,包含了一些音频轨道,视频轨道和一些元数据,这些是和你的视频或者音频控件绑定到一块的,这样才形成了一个完整的播放组件。
浏览器支持情况
浏览器 | 支持情况 | 编解码器 |
|---|---|---|
Chrome | 3.0 | Theora 、 Vorbis 、Ogg H.264 、 AAC 、MPEG4 |
FireFox | 3.5 | Theora 、 Vorbis 、Ogg |
IE | 不支持 | 无 |
Opera | 10.5 | Theora 、 Vorbis 、Ogg(10.5) VP8、Vorbis 、 WebM(10.6) |
Safari | 3.2 | H.264 、 ACC 、MPEG4 |
常用的控制函数
函数 | 动作 |
|---|---|
load() | 加载音频、视频软件 |
play() | 加载并播放音频、视频文件或重新播放暂停的的音频、视频 |
pause() | 暂停出于播放状态的音频、视频文件 |
canPlayType(obj) | 测试是否支持给定的Mini类型的文件 |
只读的媒体属性
只读属性 | 值 |
|---|---|
duration | 获取媒体文件的播放时长,以s为单位,如果无法获取,则为NaN |
paused | 如果媒体文件被暂停,则返回true,否则返回false |
ended | 如果媒体文件播放完毕,则返回true |
startTime | 返回起始播放时间 |
error | 返回错误代码 |
currentSrc | 以字符串形式返回正在播放或已加载的文件 |
可脚本控制的属性值
属性 | 值 |
|---|---|
autoplay | 自动播放已经加载的的媒体文件 |
loop | 为true的时候则设定为自动播放 |
currentTime | 以s为单位返回从开始播放到目前所花的时间 |
controls | 显示或者隐藏用户控制界面 |
volume | 音量值,从0.0至1.0之间 |
muted | 设置是否静音 |
autobuffer | 是否进行缓冲加载 |
创建音频元素
在页面中添加一个音频元素:
<audio src="../Media/The sound of silence.mp3" controls="controls" autoplay="autoplay"></audio>
在谷歌Chrome浏览器中的效果如下:
controls指的是用户控制界面,所以我们可以在Web页面中看到上面这个操作面板,包括播放和暂停,播放进度条,音量进度条,和进度时间显示等。autoplay指的是自动播发已加载的媒体文件,所以我们一打开页面就可以直接播放了
HTML5 Audio API 的界面很强大,功能也很完善,但是我们的Web应用会根据不同的需求、设计风格和界面颜色来要求不同的播放器样式和功能,这就要求我们能基于他们的API 设计出灵活的应用。
设计自定义播放器
接下来,我们设计一款适合我们离线工作系统需要的播放器:
<div id="custom-player">
<button id="play-pause">Play</button>
<input type="range" id="volume" min="0" max="1" step="0.1" value="1">
<input type="range" id="seek" min="0" max="100" value="0">
<span id="current-time">0:00</span>/<span id="duration">0:00</span>
</div>
添加CSS样式
#custom-player {
display: flex;
align-items: center;
}
#play-pause {
margin-right: 10px;
}
#volume, #seek {
flex: 1;
margin: 0 10px;
}
#current-time, #duration {
margin-left: 10px;
}
页面的元素和CSS样式写完之后,就可以看到一个漂亮的音乐播放器的模型了:
添加功能
只是现在的播放器上面的按钮都是空壳,没有任何功能。所以,现在我们就来添加这些功能 , 脚本的顶层框架就用Jquery。
$(document).ready(function() {
var audio = $('audio')[0];
$('#play-pause').click(function() {
if (audio.paused) {
audio.play();
$(this).text('Pause');
} else {
audio.pause();
$(this).text('Play');
}
});
$('#volume').change(function() {
audio.volume = $(this).val();
});
$('#seek').change(function() {
audio.currentTime = ($(this).val() / 100) * audio.duration;
});
audio.addEventListener('timeupdate', function() {
var currentTime = Math.floor(audio.currentTime);
var duration = Math.floor(audio.duration);
$('#current-time').text(formatTime(currentTime));
$('#duration').text(formatTime(duration));
$('#seek').val((currentTime / duration) * 100);
});
function formatTime(seconds) {
var minutes = Math.floor(seconds / 60);
var secs = seconds % 60;
return (minutes < 10 ? '0' + minutes : minutes) + ':' + (secs < 10 ? '0' + secs : secs);
}
});
通过以上代码,我们成功创建了一个功能完善的自定义音乐播放器。这个播放器包含了播放/暂停按钮、音量控制、播放进度条以及当前时间和总时间的显示。你可以根据实际需求进一步扩展和优化这个播放器的功能。
热门推荐
股票换股的策略有哪些?这些策略对投资者有何实际帮助?
汇率与利率的关系是什么?
仙人掌繁殖全攻略:从基质准备到养护要点
岁月沉香的桂花林藏酒
PHQ-9抑郁症筛查量表:9个问题自测抑郁程度
开办自习室的三大关键要素——选址、装修、运营
详解灵活就业人员社保缴纳问题:退休年龄、缴纳年限及退保风险
OEE的定义和计算公式
哪些行业的硕士研究生工资标准最高?
轿车和SUV有什么区别?经常跑高速的老司机告诉你,切记别选错
天然钻石鉴定之路:从外观到证书,全面剖析宝石真伪!
古埃及官僚体系中的石头、王权与永生
“睡前吃宵夜”和“饿肚子睡觉”,哪个危害更大?“16+8减肥法”到底靠不靠谱?
面部动画核心技术:骨骼绑定与权重传递详解
这件成本极低的小事,却能缓解压力、让你获得真正的放松
全球海洋鱼类物种灭绝风险大幅上升!基于数据挖掘与模型的综合预测
父母赠房如何不变“夫妻财产”?看完这篇就懂了!
大六壬起课:正时还是活时?
以史为鉴!梳理总结中国股市历史上的历次牛市和熊市!
高铁环线无缝衔接航空出行,空铁联运做优旅客服务
AI都那么聪明了,为什么写出的文章还是没有感情?
一文全懂:独立冗余磁盘阵列(RAID)
太岁的多重含义:从天文现象到文化信仰的探讨与理解
几种适合饲养的宠物推荐,让你的生活充满乐趣与陪伴
多种方式查询养老保险个人账户余额
走进核动力院:从深海走向核能未来
清朝禁毒政策的实施及其影响
庚金和辛金的性格,一样吗?
原神如何调整团队位置
如何用Excel制作高效教案