HTML5 video 详解 属性 事件 方法

摘要:
在HTML5中显示视频只需要:您的浏览器不支持视频标记`1.0.4。使用DOM控制视频的一个简单示例是varmyVid=document。getElementById//获取视频元素myVideo。play()//播放视频myVideo.pause()//暂停视频myVideo。width=560//设置视频宽度myVideo。height=560//设置视频高度1.0.5。视频全屏彩色文档。按Id获取元素。webkitRequestFullScreen()文档。webkitCancelFullScreen();Firefoxdocument.getElementById.mozRequestFullScreen();document.mozCancelFullScreen();//W3C提出了文档。按Id获取元素。requestFullscreen();document.exitFullscreen();:全屏–当前全屏元素:全屏祖先–所有全屏元素1.0.6.HTML5-方法、属性和事件varmyVid=document的祖先元素。getElementById//播放速度myVid。播放率=1myVid。onloadstart=函数(){console.log;}myVid。configurationchange=函数(){console.log;}myVid。onlatechange=函数(){console.log;}myVid。onseeking=函数(){console.log;}myVid。onseeked=function(){console.log;}myVid。onseeked=function(){console.log;}myVid。onplay=函数(){console.log;}myVid。onplay=函数(){console.log;}myVid。onwaiting=function(){console.log(`由于未获得下一帧数据,播放已停止,但播放器并未主动期望它停止,仍在尝试获取数据。简而言之,它正在等待下一帧视频数据,暂时无法播放。

时至今天 2016年12月9日,chrome 的 版本 55.0.2883.75 (64-bit)。浏览器自带的播放器已经足够强大了,看下图,现在完全没必要去自己创建个播放器了。(可以想象html5视频播放器就是一套theme(皮肤))

chrome 浏览器.png

safari 浏览器

1.0.1. 那么 HTML5 (视频)- 如何工作 ?

HTML5 中显示视频,您所有需要的是:

<video width="320" height="240" controls>
 <source src="/example/video/movie.mp4" type="video/mp4">
 <source src="/example/video/movie.ogg" type="video/ogg">
 您的浏览器不支持Video标签。
</video>

1.0.2. 视频格式与浏览器的支持

浏览器的支持 .png

如此的话,只需要写

<source src="/example/video/movie.mp4" type="video/mp4">
<source src="/example/video/movie.ogg" type="video/ogg">

就能支持所有的浏览器播放格式

1.0.3. 标签的属性

//autoplay 则视频在就绪后马上播放。
//controls 用户显示控件,比如播放按钮。
//width 频播放器的宽度。
//height 设置视频播放器的高度
//loop 文件完成播放后再次开始播放。
//preload 视频在页面加载时进行加载,并预备播放
// src 要播放的视频的 URL。

let ele = `<div id="videoPlayModal"  data-type='m9' class='fn-hide  '>
  <video id="video1" width="854" height="480" controls  autoPlay preload >
     <source src=${url}  />
           您的浏览器不支持Video标签。
  </video>
</div>`

1.0.4. 使用 DOM 进行控制video

简单的例子

var myVid=document.getElementById("video1"); //获取video 元素
myVideo.play(); //播放视频
myVideo.pause();  //暂停视频
myVideo.width=560; //设置视频宽度
myVideo.height=560;  //设置视频高度

1.0.5. 视频全屏

chrome

document.getElementById('video1').webkitRequestFullScreen()
document.webkitCancelFullScreen();

Firefox

document.getElementById('video1').mozRequestFullScreen();
document.mozCancelFullScreen();

// W3C 提议

document.getElementById('video1').requestFullscreen();
document.exitFullscreen();

【css伪类】

:fullscreen – 当前全屏化的元素 :fullscreen-ancestor – 所有全屏化元素的祖先元素

1.0.6. HTML5 - 方法、属性以及事件

var myVid=document.getElementById("video1");
//播放的速度
myVid.playbackRate = 1
myVid.onloadstart = function(){
  console.log(`onloadstart  客户端开始请求数据  `);
}
myVid.ondurationchange=function(){
  console.log(`durationchange 资源长度改变  `);
}
myVid.onratechange=function(){
  console.log(`onratechange  //播放速率改变  `);
}
myVid.onseeking=function(){
  console.log(` //seeking  寻找中 点击一个为(缓存)下载的区域`);
}
myVid.onseeked=function(){
  console.log(` //seeked 寻找完毕 `);
}
myVid.onplay=function(){
  console.log(`开始播放时触发 `);
}
myVid.onwaiting=function(){
  console.log(`播放由于下一帧数据未获取到导致播放停止,但是播放器没有主动预期其停止,仍然在努力的获取数据,简单的说就是在等待下一帧视频数据,暂时还无法播放。 `);
}
myVid.onplaying=function(){
  console.log(`真正处于播放的状态,这个时候我们才是真正的在观看视频。 `);
}
myVid.oncanplay=function(){
  console.log(`视频播放器已经可以开始播放视频了,但是只是预期可以正常播放,不保证之后的播放不会出现缓冲等待。 `);
}
myVid.onpause=function(){
  console.log(`暂停播放时触发 `);
}
myVid.onended=function(){
  alert(` //播放结束 loop 的情况下不会触发  `);
}
myVid.onvolumechange=function(){
  console.log(`音量改变  `);
}
myVid.onloadedmetadata=function(){
  console.log(`获取视频meta信息完毕,这个时候播放器已经获取到了视频时长和视频资源的文件大小。 `);
}
myVid.onloadeddata=function(){
  console.log(`"视频播放器第一次完成了当前播放位置的视频渲染。"`);
}

myVid.onabort=function(){
  console.log(`客户端主动终止下载(不是因为错误引起), `);
}

myVid.onerror=function(){
  console.log(`请求数据时遇到错误`);
  //1.用户终止 2.网络错误 3.解码错误 4.URL无效
  alert(myVid.error.code);
}

//客户端请求数据
myVid.onprogress=function(){

  console.log(`客户端正在请求数据 触发多次,是分段请求的`);
  console.log(myVid.buffered);
   //0.此元素未初始化  1.正常但没有使用网络  2.正在下载数据  3.没有找到资源
  console.log(`networkState ${myVid.networkState}`);
  //  //当前播放的位置,赋值可改变位置 myVid.currentTime = 11 从11秒位置开始播放
  console.log(myVid.currentTime);
  // //返回当前资源的URL
  console.log(myVid.currentSrc);

  console.log(myVid.videoWidth);
  //播放结束 返回true 或 false
  console.log(myVid.ended);
  //音量大小 为0-1 之间的值
  console.log(myVid.volume);


  //当前资源长度
  console.log(myVid.duration);
  console.log(myVid.startDate)
  // myVid.currentTime = 11

免责声明:文章转载自《HTML5 video 详解 属性 事件 方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇easypoi入门&amp;lt;1git远程版本回退下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux 视频设备驱动V4L2最常用的控制命令使用说明

Linux视频设备驱动常用控制命令使用说明设置视频设备属性通过ioctl来进行设置,ioctl有三个参数,分别是fd, cmd,和parameter,表示设备描述符,控制命令和控制命令参数。1. 控制命令VIDIOC_QUERYCAP功能: 查询设备驱动的功能 ;参数说明:参数类型为V4L2的能力描述类型struct v4l2_capability;str...

10.折线连接--从零起步实现基于Html5的WEB设计器Jquery插件(含源码)

前面章节已讲到如何在两个组件间通过曲线(贝塞尔曲线)进行连接,一般在实际应用中,贝塞尔曲线在数据流图、思维导图中应用比较多,许多如组织架构图等通过折线连接,本文在之前的基础上如何快速实现两个组件间的折线连接: 之前示例是用checkbox来指示是否画线状态,现在增加了一种线条所以需要修改一下用三种状态来识别是选择/曲线/折线之一,index.html中代...

分享10款激发灵感的最新HTML5/CSS3应用

在HTML5家族中,CSS3无疑是一名举足轻重的家庭成员。我们可以利用CSS3的各种特性来完成非常炫酷实用的HTML5应用插件,方便前端开发者快速实现需要的功能。今天分享的10款最新HTML5/CSS3应用也许能激发你的灵感。 1、HTML5/CSS3实现iOS Path菜单 菜单动画很酷 Path菜单相信大家都不陌生吧,它在iOS中非常流行,今天我们要...

如何用FFmpeg API采集摄像头视频和麦克风音频,并实现录制文件的功能转

之前一直用Directshow技术采集摄像头数据,但是觉得涉及的细节比较多,要开发者比较了解Directshow的框架知识,学习起来有一点点难度。最近发现很多人问怎么用FFmpeg采集摄像头图像,事实上FFmpeg很早就支持通过DShow获取采集设备(摄像头、麦克风)的数据了,只是网上提供的例子比较少。如果能用FFmpeg实现采集、编码和录制(或推流)...

HTML5 Canvas显示本地图片实例1、Canvas预览图片实例1

1.前台代码: <input type="file" /> <canvas height="500"></canvas> <script > //读取本地文件 var inputOne = document.getElement...

GStreamer Plugin: Embedded video playback halted; module decodebin20 reported: Your GStreamer installation is missing a plug-in.

标题是在Linux下使用系统yum install 的opencv库来获取视频帧的时候抛出来的错误消息。opencv调用了Gstream的API来处理了视频。错误抛出的代码如下图: http://ubuntuforums.org/archive/index.php/t-1730395.html http://stackoverflow.com/quest...