流媒体
video 标签
用于播放视频或直播流,可以通过 JS HTMLVideoElement 对象访问
<video width="250" controls src="/media/test.mp4"></video>
<video width="250" controls>
<source src="/media/test.webm" type="video/webm" />
<source src="/media/test.mp4" type="video/mp4" />
<source src="video.ogg" type="video/ogg" />
当前浏览器不支持video标签
</video>
常用属性:
width
视频显示区域的宽度,单位是px
,不支持百分比height
视频显示区域的高度controls
控制面板,允许用户控制视频的音量、跨帧、暂停/恢复播放loop
是否循环播放autoplay
是否自动播放muted
是否设置初始静音src
视频链接,可选,可使用video
块内的<source>
元素代替poster
视频封面
<source>
标签放在 <audio>
或者 <video>
内部,以指定播放的媒体源,可以添加多个不同格式、大小、分辨率的媒体源,通过 JS HTMLSourceElement 对象访问。
使用视频作为背景
- 视频铺满屏幕:
- 视频流不可扭曲拉伸
- 视频充满屏幕且不变形:
object-fit: cover;
- 如果视频下方出现白色横线,可以对 video 标签设置
display: block;
- 如果有溢出,使用
overflow: hidden;
- 适配移动端:保证视频是居中的,只显示居中的部分,两边裁剪掉
<div class="video-box">
<video
class="video-background"
preload="auto"
loop
playsinline
autoplay
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ha_lm_lswvlw/ljhwZthlaukjlkulzlp/portal/campus/2022-landing-page.mp4"
tabindex="-1"
muted="muted"
></video>
<div class="layer">
<img src="bytedance.svg" alt="bytedance" />
<div class="slogan">
<div class="subtitle">字节跳动招聘</div>
<div class="title">激发创造,丰富生活</div>
<div class="btn">立即投递</div>
</div>
</div>
</div>
<div class="content">content</div>
* {
margin: 0;
padding: 0;
}
.video-box {
position: relative;
height: 100vh;
background-color: #c1cff7;
/*进行视频裁剪*/
overflow: hidden;
}
.video-box .video-background {
position: absolute;
left: 50%;
top: 50%;
/*保证视频内容始终居中*/
transform: translate(-50%, -50%);
width: 100%;
height: 100%;
/* 保证视频充满屏幕 */
object-fit: cover;
min-height: 800px;
}
.layer {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100vh;
/* 蒙板背景 */
background: rgba(19, 60, 154, 0.2);
}
.layer img {
margin-top: 15px;
margin-left: 100px;
}
.slogan {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 684px;
color: white;
text-align: center;
}
.slogan .subtitle {
font-weight: 550;
font-size: 20px;
letter-spacing: 10px;
margin: 0 0 16px;
}
.slogan .title {
font-weight: 550;
font-size: 56px;
margin: 0 0 16px;
}
.slogan .btn {
position: relative;
left: 50%;
width: 156px;
height: 54px;
line-height: 54px;
margin-top: 40px;
margin-left: -78px;
color: #3370ff;
background: white;
text-align: center;
border-radius: 100px;
font-weight: 600;
}
.content {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100vh;
}
audio 标签
播放音频,可以通过 JS HTMLAudioElement 对象访问。
<audio controls>
<source src="/assets/viper.mp3" type="audio/mp3" />
<source src="/assets/viper.ogg" type="audio/ogg" />
<p>你的浏览器不支持audio标签</p>
</audio>
字幕
使用<track>
可以给<video>
和<audio>
添加字幕
<video controls>
<source src="/assets/movie.mp4" type="video/mp4" />
<track default label="嗷嗷" kind="subtitles" srclang="en" src="/assets/subtitles_en.vtt" />
当前浏览器不支持video标签
</video>