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);
}
});
通过以上代码,我们成功创建了一个功能完善的自定义音乐播放器。这个播放器包含了播放/暂停按钮、音量控制、播放进度条以及当前时间和总时间的显示。你可以根据实际需求进一步扩展和优化这个播放器的功能。
热门推荐
锅糊了?番茄酱帮你搞定!
麦饭石锅炒菜不糊的秘密分享
芜湖基地揭秘《熊出没·重启未来》:科幻终章的技术与思考
深圳到清远自驾游:泡温泉赏美景
夏季自驾游必备:全面行前检查指南
选拔百位男青年学习江南文化,文旅融合项目打造新表演团队
三合一咖啡为什么会让人变胖?
四川邻水:促文旅融合发展 建川渝旅游胜地
徐州必打卡:霸王别姬&羊方藏鱼的传奇味道
徐州烧烤:千年古城的舌尖新宠
银行卡尾号泄露危险吗?内行人说出实情
守护蓝色家园:内海保护的行动与实践
周末逃离深圳!英西峰林自驾游攻略
深圳出发!古龙峡漂流攻略大揭秘
周末打卡古龙峡:深圳出发必玩漂流胜地!
官宣!中足联成立!足协不再参与职业联赛组织运营
开始复苏,中超联赛靠什么?
在家轻松自制媲美星巴克的美式咖啡:技术与体验分享
咖啡和什么搭配更好吃?10种最受欢迎咖啡美食搭配方法
全民健康生活方式日:要“健”识更要“健”行
经常喝绿茶,对血脂有没有影响?有利于降血脂吗?望你早点搞清楚
女性冬天适合喝什么茶?女性冬季养生注意事项
正史中五虎上将的兵器,这才是他们真实的武力值!
陈仓之战:三国时期很有含金量的一战,实力悬殊,败方是诸葛亮
张文宏“被带货”还会有下次吗?刘忱代表:鼓励科技企业研发AI防御与鉴伪技术
全面评估二手车的技巧与注意事项,助你轻松选车无忧
《水浒传》背后的岳飞真相揭秘
央视版《水浒传》:20年后的经典回望
《水浒传》中的宋江:从江湖到朝堂
感冒康复期的营养助力:蒸蛋的制作与搭配指南