您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 怎么使用HTML5新增的audio与video标签
## 一、前言
随着HTML5标准的普及,网页多媒体能力得到显著增强。其中`<audio>`和`<video>`标签的引入彻底改变了传统依赖Flash等插件的多媒体播放方式。本文将全面解析这两个标签的使用方法、属性配置、API控制以及实际应用场景。
## 二、audio标签详解
### 2.1 基本语法
```html
<audio src="audio.mp3" controls></audio>
属性 | 说明 |
---|---|
src |
音频文件路径 |
controls |
显示默认控制面板 |
autoplay |
自动播放(浏览器可能限制) |
loop |
循环播放 |
muted |
静音状态 |
preload |
预加载策略(auto/metadata/none) |
<audio controls>
<source src="audio.ogg" type="audio/ogg">
<source src="audio.mp3" type="audio/mpeg">
您的浏览器不支持audio标签
</audio>
const audio = document.querySelector('audio');
// 播放/暂停切换
function togglePlay() {
audio.paused ? audio.play() : audio.pause();
}
// 音量控制
audio.volume = 0.5; // 范围0-1
// 进度跳转
audio.currentTime = 30; // 跳转到30秒
<video src="video.mp4" width="640" controls></video>
属性 | 说明 |
---|---|
poster |
视频封面图URL |
width /height |
显示尺寸 |
playsinline |
移动端内联播放 |
<video width="640" controls poster="poster.jpg">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
您的浏览器不支持video标签
</video>
const video = document.querySelector('video');
// 进入全屏
function requestFullscreen() {
if (video.requestFullscreen) {
video.requestFullscreen();
} else if (video.webkitRequestFullscreen) {
video.webkitRequestFullscreen();
}
}
// 检测全屏状态
document.addEventListener('fullscreenchange', () => {
console.log(!!document.fullscreenElement);
});
const media = document.querySelector('audio, video');
media.addEventListener('timeupdate', () => {
console.log(`当前进度: ${media.currentTime}`);
});
media.addEventListener('ended', () => {
console.log('播放结束');
});
<div class="custom-player">
<video src="video.mp4"></video>
<div class="controls">
<button class="play-btn">▶</button>
<input type="range" class="progress" max="100">
<span class="time">00:00</span>
</div>
</div>
<script>
const video = document.querySelector('video');
const playBtn = document.querySelector('.play-btn');
const progress = document.querySelector('.progress');
playBtn.addEventListener('click', () => {
video.paused ? video.play() : video.pause();
});
video.addEventListener('timeupdate', () => {
progress.value = (video.currentTime / video.duration) * 100;
});
</script>
<video controls>
<source src="video.mp4#t=10,20" type="video/mp4">
</video>
<!-- 播放10-20秒片段 -->
// 进入画中画模式
video.requestPictureInPicture();
// 退出画中画
document.exitPictureInPicture();
<video autoplay></video>
<script>
navigator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
document.querySelector('video').srcObject = stream;
});
</script>
function canPlayType(type) {
const audio = document.createElement('audio');
return !!audio.canPlayType(type);
}
console.log(canPlayType('audio/ogg')); // "maybe" 或 "probably"
<video controls>
<source src="video.mp4" type="video/mp4">
<!-- Flash备用 -->
<object type="application/x-shockwave-flash">
<param name="movie" value="player.swf">
</object>
</video>
preload="metadata"
loading="lazy"
属性
video {
max-width: 100%;
height: auto;
}
HTML5媒体标签为现代Web开发提供了强大的多媒体支持。通过合理使用这些标签及其API,开发者可以创建丰富的媒体体验,同时保证性能和兼容性。随着WebCodecs等新标准的出现,未来网页多媒体能力还将继续增强。
附录:常用MIME类型对照表
格式 | MIME类型 |
---|---|
MP3 | audio/mpeg |
OGG | audio/ogg |
WAV | audio/wav |
MP4 | video/mp4 |
WebM | video/webm |
OGV | video/ogg |
”`
注:本文约3250字,实际字数可能因排版略有差异。完整实现时需要补充具体代码示例的CSS样式和更详细的兼容性处理方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。