@Video

素材准备
点击下载素材Alizee.mp4或自行准备
.inline
.播放视频,如MP4、avi
.桌面端单击视频窗口可以触发播放或暂停;移动端不能,只能使用控制栏
语法
.默认情况下,没有播放控件,需要通过js控制
<video src=""></video>
.使用播放控件属性可视化控制
<video src="" controls></video>
类别 说明
src 视频的URL,推荐使用MP4格式
autoplay 自动播放
controls 播放控制条
loop 重复播放
muted 静音播放
preload 预加载;如果使用autoplay,则忽略该属性
poster 视频封面图像;可以使用gif;大小应该和视频保持一致
.大多和HTML标签属性一一对应
.利用事件对视频流进行控制
video.addEventListener('loadstart', () => {
    console.log('1.loadstart');
    console.log('duration', video.duration);
})
video.addEventListener('durationchange', () => {
    console.log('2.durationchange');
    console.log('duration', video.duration);
})
video.addEventListener('loadedmetadata', () => {
    console.log('3.loadedmetadata');
    console.log('duration', video.duration);
})
video.addEventListener('loadeddata', () => {
    console.log('4.loadeddata');
})
video.addEventListener('progress', () => {
    console.log('progress');
})
video.addEventListener('canplay', () => {
    console.log('5.canplay');
})
video.addEventListener('play', () => {
    console.log('play');
})
video.addEventListener('playing', () => {
    console.log('playing');
})
video.addEventListener('pause', () => {
    console.log('pause');
})
video.addEventListener('seeking', () => {
    console.log('seeking');
})
video.addEventListener('seeked', () => {
    console.log('seeked');
})
video.addEventListener('ended', () => {
    console.log('ended');
})
video.addEventListener('error', () => {
    console.log('error');
})
video.addEventListener('timeupdate', () => {
    let current = video.currentTime;
    console.log('timeupdate', current);
})
初始化样式
.默认情况下,视频采用16*9的比例,最小尺寸是640*360
.调整视频时,应保证比例不变
.以下各例均采用初始化样式
video {
    width: 100%;
    aspect-ratio: 16/9;
}
[] 视频的可视化使用
.添加controls属性方便可视化控制
.添加preload属性可以预加载视频,避免卡顿
.添加封面poster可以避免视频剪辑过程中头部的黑场/空白帧
<video src="./video/alizee.mp4" controls preload poster="../imgs/alizee.jpg">您的浏览器不支持video标签</video>
[] 视频预览和播放
.鼠标移入mouseover循环播放视频,同时显示播放控件,方便用户进一步操作
.鼠标移出mouseout暂停播放,取消播放控件
.元素获取要在window.onload之后
window.onload = function () {
    let pre = document.querySelector(".pre");
    pre.loop = true;
    pre.addEventListener('mouseover', () => {
        pre.controls = true;
        pre.play();
    })
    pre.addEventListener('mouseout', () => {
        pre.controls = false;
        pre.pause();
    })
}
[] 更多案例
.响应式开发
总结与作业 Summary & Homework
总结
.视频 <video>的使用
. 为了首页加载速度,通常不直接在主页放置视频;而是通过链接的方式转到单独的页面播放
. 如果坚持在首页展示,一般设置 mute和 preload,同时禁止 autoplay
作业
1. 完成上述内容的练习
2. 制作个人视频,扩充并完善到个人网站