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

  1. <!DOCTYPE >
  2. <html>
  3. <head>
  4. <title></title>
  5. <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
  6. <script type="text/javascript">
  7. $(
  8. function() {
  9. $(":button").click(
  10. function() {
  11. var h;
  12. switch ($(":button").index($(this))) {
  13. case 0:
  14. if ($("video")[0].paused) {
  15. $("video")[0].play();
  16. $(this).val("暂停");
  17. }
  18. else {
  19. $("video")[0].pause();
  20. $(this).val("播放");
  21. }
  22. break;
  23. case 1:
  24. h = document.getElementsByTagName("video")[0].height == 0 ?
  25. document.getElementsByTagName("video")[0].videoHeight - 10 :
  26. document.getElementsByTagName("video")[0].height - 10; ;
  27. document.getElementsByTagName("video")[0].height = h;
  28. document.getElementsByTagName("video")[0].videoHeight = h;
  29. break;
  30. case 2:
  31. h = document.getElementsByTagName("video")[0].height == 0 ?
  32. document.getElementsByTagName("video")[0].videoHeight + 10 :
  33. document.getElementsByTagName("video")[0].height + 10; ;
  34. document.getElementsByTagName("video")[0].height = h;
  35. document.getElementsByTagName("video")[0].videoHeight = h;
  36. break;
  37. }
  38. }
  39. );
  40. }
  41. );
  42. $(
  43. function() {
  44. $("#video1").on(
  45. "canplay",
  46. function(e) {
  47. $(":button").removeAttr("disabled");
  48. console.log(e);
  49. }
  50. );
  51. $("#video1").on(
  52. "canplaythrough",
  53. function(e) {
  54. $("ol>li:eq(0)").html("全部加载完毕,你可以断网看电影了!");
  55. console.log(e);
  56. }
  57. );
  58. $("#video1").bind(
  59. "playing waiting ended play pause",
  60. function(e) {
  61. var vObj = document.getElementById("video1");
  62. $("ol>li:eq(1)").html(vObj.duration + ":" + vObj.startTime + ":" + vObj.currentTime);
  63. console.log(e);
  64. }
  65. );
  66. $("#video1").on(
  67. "stalled",
  68. function(e) {
  69. $("ol>li:eq(2)").html("你的网络不给力啊,正在等数据呢");
  70. console.log(e);
  71. }
  72. );
  73. $("#video1").on(
  74. "error",
  75. function(e) {
  76. switch (e.target.error.code) {
  77. case e.target.error.MEDIA_ERR_ABORTED:
  78. $("ol>li:eq(3)").html("媒体资源获取异常");
  79. break;
  80. case e.target.error.MEDIA_ERR_NETWORK:
  81. $("ol>li:eq(3)").html("网络错误");
  82. break;
  83. case e.target.error.MEDIA_ERR_DECODE:
  84. $("ol>li:eq(3)").html("媒体解码错误");
  85. break;
  86. case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
  87. $("ol>li:eq(3)").html("视频格式被不支持");
  88. break;
  89. default:
  90. $("ol>li:eq(3)").html("这个是神马错误啊");
  91. break;
  92. }
  93. console.log(e);
  94. }
  95. );
  96. $("#video1").on(
  97. "suspend abort progress",
  98. function(e) {
  99. var vObj = document.getElementById("video1");
  100. $("ol>li:eq(1)").html(vObj.duration + ":" + vObj.startTime + ":" + vObj.currentTime);
  101. console.log(e);
  102. }
  103. );
  104. $("#video1").on(
  105. "progress error abort",
  106. function(e) {
  107. switch (e.target.readyState) {
  108. case 0:
  109. $("ol>li:eq(3)").html("当前播放位置无有效媒介资源");
  110. break;
  111. case 1:
  112. $("ol>li:eq(3)").html("加载中,媒介资源确认存在,但当前位置没有能够加载到有效媒介数据进行播放");
  113. break;
  114. case 2:
  115. $("ol>li:eq(3)").html("已获取到当前播放数据,但没有足够的数据进行播放");
  116. break;
  117. case 3:
  118. $("ol>li:eq(3)").html("已获取到后续播放数据,可以进行播放");
  119. break;
  120. default:
  121. case 4:
  122. $("ol>li:eq(3)").html("可以进行播放,且浏览器确认媒体数据以某一种速度进行加载,可以保证有足够的后续数据进行播放,而不会使浏览器的播放进度赶上加载数据的末端");
  123. break;
  124. }
  125. console.log(e);
  126. }
  127. );
  128. }
  129. );
  130. </script>
  131. </head>
  132. <body>
  133. <video id="video1" autobuffer>
  134. <source src="video-test.mp4" type="video/mp4" />
  135. 对不起你的浏览器不支持HTML5的新特性,要不你下载一个
  136. <a href="http://info.msn.com.cn/ie9/">IE9</a>?
  137. </video>
  138. <input type="button" value="播放" disabled />
  139. <input type="button" value="缩小" disabled />
  140. <input type="button" value="放大" disabled />
  141. <ol>
  142. <li></li>
  143. <li></li>
  144. <li></li>
  145. <li></li>
  146. <li></li>
  147. </ol>
  148. </body>
  149. </html>

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

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

canplaythrough 资源都下载完毕了

error 出错时候

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

转载于:https://blog.51cto.com/shyleoking/806941

HTML5 Video DOM 入门体验相关推荐

  1. 使用jQuery和CSS自定义HTML5 Video 控件

    http://www.cnblogs.com/lucker/archive/2013/03/01/2939163.html Html5 Video是现在html5最流行的功能之一,得到了大多数最新版本 ...

  2. html5 dom video,HTML5 / HTML5 video - 使用 DOM 进行控制 - 汇智网

    HTML5 < video > - 使用 DOM 进行控制 HTML5 < video > 和 < audio > 元素同样拥有方法.属性和事件. < vid ...

  3. web前端入门到实战:HTML5 video视频播放

    一.下面播报一则新闻 Chrome 70已经原生支持HTML5 <video>播放时候Picture-in-Picture,也就是俗称的画中画技术,也就是很多视频网站看评论时候,播放视频变 ...

  4. 前端开发入门到实战:HTML5 video视频播放

    一.下面播报一则新闻 Chrome 70已经原生支持HTML5 <video>播放时候Picture-in-Picture,也就是俗称的画中画技术,也就是很多视频网站看评论时候,播放视频变 ...

  5. html5 x5引擎,HTML5+CSS3从入门到精通之快速了解X5内核浏览器,video兼容

    本篇文章主要讲述HTML5+CSS3从入门到精通之快速了解X5内核浏览器,video兼容,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. 使用vue-video-player在移 ...

  6. html video标签问题,用HTML5 video标签的一系列问题

    H5标签的video,我想写过前台代码的人,都不会陌生吧.但video标签还是有少量问题. 一.PC端的兼容问题: H5的标签不兼容ie8包括ie8以下的浏览器:处理办法:用js的库video.js, ...

  7. html 显示状态条,怎么控制html5 video 控制条显示和隐藏时间

    Html5 Video是现在html5最流行的功能之一,得到了大多数最新版本的浏览器支持.包括IE9,也是如此.不同的浏览器提供了不同的原生态浏览器视频空间.我们制作自定义视频控件为了在所有的浏览器中 ...

  8. PHPWeb开发入门体验学习笔记

    PHPWeb开发入门体验学习笔记 4 一.PHP web应用开发须知 1.入门要点 程序员三个阶段:码农(速成技能)->工程师(长期知识)->专家(研究论文) 编程三要素:声明变量(系统. ...

  9. html video各种控制命令,HTML5 Video(视频)

    HTML5 Video(视频) 很多站点都会使用到视频. HTML5 提供了展示视频的标准. 检测您的浏览器是否支持 HTML5 视频: 检测 Web站点上的视频 直到现在,仍然不存在一项旨在网页上显 ...

最新文章

  1. 1024,给大家谈谈如何搞透刷题 玩转力扣!
  2. Singleton模式的实现
  3. php框架所用到的核心概念,【PHP】PHP现代框架代表-Laravel框架核心技术特性
  4. c语言 Nimm game算法,尼姆博奕(Nimm Game)
  5. Android 面向切面编程-aspjectj应用
  6. TreeMap的讲解
  7. STM32: HAL库开发概览
  8. 4月13日调整人人商城小程序用户登录灰头像,getUserProfile小程序登录接口适配比较简单的方法
  9. 购书网站前端实现(HTML+CSS+JavaScript)
  10. hihoCoder 1425 : What a Beautiful Lake(美丽滴湖)
  11. 逆向教程-U3D游戏逆向分析(伊甸逆向分析)
  12. 成功解决笔记本重装系统后没有无线网
  13. el-select动态清除value、el-input回车上传数据
  14. HP Smart Tank 518 在 macOS 下如何进行手动双面打印
  15. python的describe参数_Python Pandas Series.describe()用法及代码示例
  16. Visual Studio滚动条设置
  17. 【状压DP】【cofun1373】中国象棋(cchess)
  18. 2021-07-19 .NET高级班 113-AmCharts实时图表的使用
  19. 趣味应用 | 硬核,你见过机器人玩“密室逃脱”吗?(附代码)
  20. C#调用Delphi开发的DLL报内存写保护的错误信息

热门文章

  1. excel导入mysql命令行_使用命令行将Excel数据表导入Mysql中的方法小结
  2. PTA19、通过两个列表构建字典 (10 分)
  3. 数据结构栈之火车出站小结
  4. ubuntu安装ipfs
  5. mongodb----副本集搭建及故障自动切换
  6. P2059 [JLOI2013]卡牌游戏
  7. 《Java并发编程实战》第十章 避免活跃性危急 读书笔记
  8. JavaScript执行bat文件清理浏览器缓存
  9. 【转】Pro Android学习笔记(一):Android 平台 2013.6.4
  10. 软件工程项目冲刺第二天