video标签
程序员文章站
2022-04-13 17:35:18
...
video属性
- src:视频链接
- poster:视频封面
- preload:是否预加载
- autoplay:自动播放
- loop:循环播放
- controls:浏览器自带的操作按钮
- width:视频宽度
- height:视频高度
<video id="media" src="./test.mp4" controls width="200px" heigt="400px"></video>
//audio和video都可以通过JS获取对象,JS通过id获取video和audio的对象
Media = document.getElementById("media");
video视频结束之后回到初始状态
video.addEventListener('ended',function(){
const videoSrc = video.currentSrc;
video.src = '';
video.src = videoSrc;
},false);
视频占满屏的方式
width:100%;
height:100%;
object-fit:cover;
- object-fit
- fil:被替换的内容大小可以填充元素的内容框,整个对象将完全填充此框,如果对象的宽高不匹配其框的宽高比,那么该对象将被拉伸以适应(会发生变形)
- container:被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比,整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加黑边
- cover:被替换的内容大小保持其宽高比,同时填充元素的整个内容框,如果对象的宽高比与盒子的宽高比不匹配,搞对象讲被裁剪以适应
- none:被替换的内容尺寸不会被改变
- scale-down:内容的尺寸像是制定了none或contain,取决于那一个将导致更小的对象尺寸
方法
HTMLVideoElement和HTMLAudioElement 均继承自HTMLMediaElement
Media.error;// null 正常
Media.error.code;//1、用户终止,2、网络错误,3、解码错误,4、URL无效
- 网络状态
- Media.currentSrc; // 返回当前资源的URL
- Media.src=value; // 返回或设置当前资源的URL
- Media.canPlayType(type); // 是都能播放某种格式的资源
- Media.newworkState; // 0、此元素未初始化,1、正常但没有使用网络,2、正在下载数据,3、没有找到资源
- Media.load();// 重新加载src指定的资源
- Media.buffered; // 返回已缓冲区域,TimeRanges
- Media.preload; // none:不于娟组,metadata:预载资源信息
- 准备状态
- Media.readyState;//1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA
- Media.seeking; //是否正在seeking
- 回放状态
- Media.currentTime = value // 当前播放的位置,赋值可以改变位置
- Media.startTime // 一般是0,如果为流媒体或者不从0开始的资源,则不为0
- Media.duration // 当前资源长度,流返回无限
- Media.paused // 是否暂停
- Media.defaultPlayBackRate=value; // 默认的回放速度,可以设置
- Media.playBackRate = value; // 当前播放速度,设置后马上改变
- Media.played; // 返回已经播放的区域,TimeRanges
- Media.seekable; //返回可以seek的区域 TimeRanges
- Media.endad; // 是否结束
- Media.autoPlay; //是否自动播放
- Media.loop; // 是否循环播放
- Media.play(); // 播放
- Media.pause(); // 暂停
- 视频控制
- Media.controls; // 是否有默认控制条
- Media.volume = value; // 音量
- Media.muted = value; // 静音
- TimeRanges(区域)对象
- TimeRanges.length; // 区域段数
- TimeRanges.start(index); // 第index段区域的开始位置
- TimeRanges.end(index); // 第index段区域的结束位置
- 相关事件
- eventTester(“loadstart”); 客户端考试请求数据
- eventRester(“progress”);客户端正在请求数据
- eventRester(“suspend”);延迟下载
- eventTester(“abort”); //客户端主动终止下载(不是因为错误引起)
- eventTester(“loadstart”); //客户端开始请求数据
- eventTester(“error”); //请求数据时遇到错误
- eventTester(“stalled”); //网速失速
- eventTester(“play”); //play()和autoplay开始播放时触发
- eventTester(“pause”); //pause()触发
- eventTester(“loadedmetadata”); //成功获取资源长度
- eventTester(“loadeddata”); //
- eventTester(“waiting”); //等待数据,并非错误
- eventTester(“playing”); //开始回放
- eventTester(“canplay”); //可以播放,但中途可能因为加载而暂停
- eventTester(“canplaythrough”); //可以播放,歌曲全部加载完毕
- eventTester(“seeking”); //寻找中
- eventTester(“seeked”); //寻找完毕
- eventTester(“timeupdate”); //播放时间改变
- eventTester(“ended”); //播放结束
- eventTester(“ratechange”); //播放速率改变
- eventTester(“durationchange”); //资源长度改变
- eventTester(“volumechange”); //音量改变
上一篇: 司马懿的两位女婿,看看他们有多厉害?
下一篇: 李世民逼宫后,李渊只顾着吃喝玩乐?