温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HTML5 Video DOM 入门体验

发布时间:2020-06-06 18:37:40 阅读:449 作者:shyleoking 栏目:移动开发
前端开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

HTML5的一个新特性就是内置对多媒体的支持,<video> 元素很好用,也支持了不错的API接口,下面用了一个案例来说明怎么对<video> 元素的控制。

<!DOCTYPE > <html> <head>     <title></title>      <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>      <script type="text/javascript">         $(          function() {              $(":button").click(              function() {                  var h;                  switch ($(":button").index($(this))) {                      case 0:                          if ($("video")[0].paused) {                              $("video")[0].play();                              $(this).val("暂停");                          }                          else {                              $("video")[0].pause();                              $(this).val("播放");                          }                          break;                      case 1:                          h = document.getElementsByTagName("video")[0].height == 0 ?                              document.getElementsByTagName("video")[0].videoHeight - 10 :                              document.getElementsByTagName("video")[0].height - 10; ;                          document.getElementsByTagName("video")[0].height = h;                          document.getElementsByTagName("video")[0].videoHeight = h;                          break;                      case 2:                          h = document.getElementsByTagName("video")[0].height == 0 ?                              document.getElementsByTagName("video")[0].videoHeight + 10 :                              document.getElementsByTagName("video")[0].height + 10; ;                          document.getElementsByTagName("video")[0].height = h;                          document.getElementsByTagName("video")[0].videoHeight = h;                          break;                  }              }              );          }          );            $(          function() {              $("#video1").on(              "canplay",              function(e) {                  $(":button").removeAttr("disabled");                  console.log(e);              }              );              $("#video1").on(              "canplaythrough",              function(e) {                  $("ol>li:eq(0)").html("全部加载完毕,你可以断网看电影了!");                  console.log(e);              }              );              $("#video1").bind(              "playing waiting ended play pause",              function(e) {                  var vObj = document.getElementById("video1");                  $("ol>li:eq(1)").html(vObj.duration + ":" + vObj.startTime + ":" + vObj.currentTime);                  console.log(e);              }              );              $("#video1").on(              "stalled",              function(e) {                  $("ol>li:eq(2)").html("你的网络不给力啊,正在等数据呢");                  console.log(e);              }              );              $("#video1").on(              "error",              function(e) {                  switch (e.target.error.code) {                      case e.target.error.MEDIA_ERR_ABORTED:                          $("ol>li:eq(3)").html("媒体资源获取异常");                          break;                      case e.target.error.MEDIA_ERR_NETWORK:                          $("ol>li:eq(3)").html("网络错误");                          break;                      case e.target.error.MEDIA_ERR_DECODE:                          $("ol>li:eq(3)").html("媒体解码错误");                          break;                      case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:                          $("ol>li:eq(3)").html("视频格式被不支持");                          break;                      default:                          $("ol>li:eq(3)").html("这个是神马错误啊");                          break;                  }                  console.log(e);              }              );              $("#video1").on(              "suspend abort progress",              function(e) {                  var vObj = document.getElementById("video1");                  $("ol>li:eq(1)").html(vObj.duration + ":" + vObj.startTime + ":" + vObj.currentTime);                  console.log(e);              }              );              $("#video1").on(              "progress error abort",              function(e) {                  switch (e.target.readyState) {                      case 0:                          $("ol>li:eq(3)").html("当前播放位置无有效媒介资源");                          break;                      case 1:                          $("ol>li:eq(3)").html("加载中,媒介资源确认存在,但当前位置没有能够加载到有效媒介数据进行播放");                          break;                      case 2:                          $("ol>li:eq(3)").html("已获取到当前播放数据,但没有足够的数据进行播放");                          break;                      case 3:                          $("ol>li:eq(3)").html("已获取到后续播放数据,可以进行播放");                          break;                      default:                      case 4:                          $("ol>li:eq(3)").html("可以进行播放,且浏览器确认媒体数据以某一种速度进行加载,可以保证有足够的后续数据进行播放,而不会使浏览器的播放进度赶上加载数据的末端");                          break;                  }                  console.log(e);              }              );          }          );                     </script>  </head> <body>     <video id="video1" autobuffer>     <source src="video-test.mp4" type="video/mp4" />     对不起你的浏览器不支持HTML5的新特性,要不你下载一个      <a href="http://info.msn.com.cn/ie9/">IE9</a>?     </video>     <input type="button" value="播放" disabled />     <input type="button" value="缩小" disabled />     <input type="button" value="放大" disabled />     <ol>         <li></li>         <li></li>         <li></li>         <li></li>         <li></li>     </ol> </body> </html> 

对 Video的控制重要的方法就是play、paused、stop。重要的事件有:

canplay 通知用户可以播放了,但不一定资源全部下载好

canplaythrough 资源都下载完毕了
 

error 出错时候

事件参数中有一个target对象,他有一个readyState值,可以得到不同的状态信息。具体的值,可以通过开发者工具获得,或看相关文档。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节
推荐阅读:
  1. HTML5初体验
  2. 初识Html5

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×