H5_ 多媒体video,autio使用示例

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>AV</title>
  6 </head>
  7 <body>
  8     <div class="content">
  9         <p>注意:audio标签设置controls="controls"才可以再页面中显示</p>
 10         <p>IE9开始支持</p>
 11         <div class="audio">
 12             <audio src="./other/audio.mp3" type="audio/mpeg" controls="controls" autoplay preload="auto" loop>
 13                 不支持audio
 14             </audio>
 15         </div>
 16         <div class="video">
 17             <video src="./other/video.mp4" class="video" controls="controls" autoplay preload="metadata" poster="./other/img.jpg" width="500" id="videoElement">
 18                 不支持video
 19             </video>
 20         </div>
 21         <div class="networkState"></div>
 22         <button id="getVideoURL">getVideoURL</button>
 23         <button id="palyVideo">palyVideo</button>
 24         <button id="pauseVideo">pauseVideo</button>
 25     </div>
 26     <script>
 27         var page = {
 28             init : function(){
 29                 this.listener();
 30             },
 31             listener : function(){
 32                 var video = document.getElementById('videoElement');
 33 
 34                 //error属性:不能正常读取,使用媒体数据
 35                 video.addEventListener('error', function(){
 36                     var error = video.error;
 37                     switch(error.code){
 38                         case 1 :
 39                             alert("视频的下载过程被中止");
 40                             break;
 41                         case 2 :
 42                             alert("网络发生故障,视频的下载过程被中止");
 43                             break;
 44                         case 3 :
 45                             alert('解码失败');
 46                             break;
 47                         case 4 :
 48                             alert("媒体资源不可用或是媒体格式不被支持");
 49                     } 
 50                 },false);
 51 
 52 
 53                 //networkState属性:加载过程使用networkState属性读取当前网络状态
 54                 video.addEventListener('progress',function(e){
 55                     var networkStateDisplay = document.getElementById('networkState');
 56                     if(video.networkState === 2){
 57                         //计算已加载的字节数与总字节数
 58                         networkStateDisplay.innerHTML = "加载中...["   e.loaded   "/"   e.total   "byte]";
 59                     }
 60                     else if(video.networkState === 3){
 61                         networkStateDisplay.innerHTML = "加载失败";
 62                     }
 63                 },false);
 64 
 65                 //使用currentSrc属性:读取媒体数据的URL地址(只读)
 66                 var videoURL    = video.currentSrc,
 67                     videoURLBtn = document.getElementById('getVideoURL');
 68                 videoURLBtn.onclick = function(){
 69                     //这里是空的,还不知道为什么???
 70                     console.log(videoURL);
 71                 }
 72                 //buffered属性
 73 
 74                 //readState属性
 75 
 76                 //seeking属性与seekable属性
 77 
 78                 //currenTime属性
 79                 //startTime属性
 80 
 81                 //duration属性
 82 
 83                 //play属性(开始时间,结束时间)
 84                 //paused属性(true_暂停,false_播放)
 85                 //ended属性(true_播放完毕,false_未完毕)
 86 
 87                 //defaultPlaybackRate,playbackRate属性
 88 
 89                 //volume,muted属性
 90 
 91                 /*
 92                     方法:
 93                     play(),播放
 94                     pause(),暂停
 95                     load(),重新载入
 96                 */
 97 
 98                 //监听视频播放结束事件
 99                 //注意这里不设置loop循环播放
100                 video.addEventListener('ended',function(){
101                     alert("播放结束");
102                 },true)
103 
104                 var palyVideoBtn    = document.getElementById('palyVideo'),
105                     pauseVideoBtn   = document.getElementById('pauseVideo');
106                 //播放视频play()
107                 palyVideoBtn.onclick = function(){
108                     video.play();
109                 }
110                 //暂停视频pause()
111                 pauseVideoBtn.onclick = function(){
112                     video.pause();
113                 }
114 
115                 /*
116                     canPlayType方法:
117                     空字符串——不支持
118                     maybe——可能支持
119                     probably:支持
120                 */
121                 var support = video.canPlayType("video/mp4");
122                 console.log(support);//maybe
123 
124                 /*
125                     在媒体读取和播放的过程中,还有一系列的事件。
126                     对这些事件的捕捉:
127                     (1)监听的方式
128                     (2)获取事件句柄
129                 */
130 
131             }
132         }
133         window.onload = page.init();
134     </script>
135 </body>
136 </html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql中ibdata1过大的问题

ibdata1文件是什么&#xff1f; 答&#xff1a; ibdata1是一个用来构建innodb系统表空间的文件&#xff0c;这个文件包含了innodb表的元数据、撤销记录、修改buffer和双写buffer。如果file-per-table选项打开的话&#xff0c;该文件则不一定包含所有表的数据。当innodb_file_pe…

go int 转切片_「快学 Go 语言」第 4 课——低调的数组

数组就是一篇连续的内存&#xff0c;几乎所有的计算机语言都有数组&#xff0c;只不过 Go 语言里面的数组其实并不常用&#xff0c;这是因为数组是定长的静态的&#xff0c;一旦定义好长度就无法更改&#xff0c;而且不同长度的数组属于不同的类型&#xff0c;之间不能相互转换…

走向REST:将Tomcat与Spring和JAX-RS嵌入(Apache CXF)

这篇文章是上一篇文章的逻辑延续。 唯一的区别是我们将使用的容器&#xff1a;它将是我们的老兄Apache Tomcat而不是Jetty 。 令人惊讶的是&#xff0c;嵌入最新的Apache Tomcat 7非常容易&#xff0c;因此现在让我展示一下。 我不会重复完整的上一篇文章 &#xff0c;因为除了…

移动端下,点击a标签背景高亮问题的解决方法

在制作某个移动端项目的时候&#xff0c;发现当我们点击链接&#xff0c;input标签或者div盒子的时候&#xff0c;整个标签会出现颜色块并会闪烁一下&#xff0c;不仅影响美观&#xff0c;而且会极大降低了用户体验。  解决方案&#xff1a;-webkit-tap-highlight-color: tra…

Sublime Text 3 Mac常用快捷键与注意事项

大多数情况下容易忘记的快捷键&#xff0c;在此整理了一下。 编辑快捷键&#xff1a;cmd L&#xff1a;选择行&#xff08;重复按下将下一行加入选择&#xff09;&#xff1b;cmd D&#xff1a;选择词&#xff08;重复按下时多重选择相同的词进行多重编辑&#xff09;&#xff…

Python 基础知识整理-2

条件语句  if else 循环语句  while  for 循环之break continue break语句用来终止循环语句&#xff0c;即循环条件没有False条件或者序列还没被完全递归完&#xff0c;也会停止执行循环语句。 break语句用在while和for循环中。 continue 语句用来告诉Python跳过当前循…

js实现oss批量下载文件_js下载文件到本地各种方法总结

一、此方法火狐有些版本是不支持的window.location.href https://*****.oss-cn-**.aliyuncs.com/*********;二、为了解决火狐有些版本不支持,可以改成这种方式window.locationhttps://*****.oss-cn-**.aliyuncs.com/*********;三、该方法IE和火狐都可以,url表示要下载的文件路径…

Couchbase 101:从Java应用程序创建视图(MapReduce)

使用Couchbase 2.0开发新应用程序时&#xff0c;有时需要从代码中动态创建视图。 例如&#xff0c;在安装应用程序&#xff0c;编写一些测试时&#xff0c;可能会需要此方法&#xff1b;或者&#xff0c;在构建框架时&#xff0c;您也可以使用它&#xff0c;并希望动态创建视图…

函数的参数详解

# 函数的参数定义函数的时候&#xff0c;我们把参数的名字和位置确定下来&#xff0c;函数的接口定义就算完成了。 对于函数的调用者来说&#xff0c;只需要知道如何传递正确的参数&#xff0c;以及函数将返回什么样的值就够了 函数内政部的复杂逻辑被封装起来&#xff0c;调用…

gRPC之grpcurl

1、grpcurl grpcurl项目地址 &#xff1a;https://github.com/fullstorydev/grpcurl 一般情况下测试 gRPC 服务&#xff0c;都是通过客户端来直接请求服务端。如果客户端还没准备好的话&#xff0c;也可以使用 BloomRPC (https://appimage.github.io/BloomRPC/)这样的 GUI 客…

算法初步——two pointers

什么是 two pointers   以一个例子引入&#xff1a;给定一个递增的正整数序列和一个正整数 M&#xff0c;求序列中的两个不同位置的数 a 和 b&#xff0c;使得它们的和恰好为 M&#xff0c;输出所有满足条件的方案。 本题的一个最直观的想法是&#xff0c;使用二重循环枚举序…

H5 _拖放使用

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>拖放API</title>6 <style>7 [iddragme]{8 width: 100px;9 height: 100px; 10 …

从XaaS到Java EE – 2012年哪一种该死的云最适合我?

您是否曾经想过要让Java EE在某个地方启动和运行需要什么&#xff1f; 是的 多年。 从托管我自己的主机开始&#xff0c;转到一些托管产品 &#xff0c;最后偶然发现了PaaS运动。 老实说&#xff0c;我并没有太认真。 我只是想把我的东西放到某个地方&#xff0c;而不在乎解决…

正方体最快最简单画_素描新手入门第一幅画可不只是“正方体”

很多素描教程都把正方体作为入门第一幅画学习内容。这种现象也成了约定俗成的规矩但是&#xff0c;学过画画的人大概都知道有很多人画了多年石膏几何形、静物、人头像甚至半身像全身像。到最后落得只会画这些学过的东西。这就说明学习出了问题。绘画练习一定要弄清楚每个物体练…

重写Alert和confirm方法去除地址显示

//重写alert方法&#xff0c;去掉地址显示window.alertfunction(name){var iframedocument.createElement("IFRAME");iframe.style.display"none";iframe.setAttribute("src",data:text/plain,); document.documentElement.appendChild(iframe);…

VS2015配置内核WDK7600环境,32位下.

VS2015配置内核WDK7600环境,32位下. 学习内核驱动的编写,就要会配置环境.不然总是用记事本编写.比较不方便. 环境配置如下. 1.首先下载WDK7600, 课堂资料代码中已经上传.链接&#xff1a;https://pan.baidu.com/s/1o9PjpUU 密码&#xff1a;k5sp 2.VS2015下载. 这个网络上有很多…

Camel 2.11 –具有URL重写功能的HTTP代理路由

在即将发布的Apache Camel 2.11版本中&#xff0c;我最近添加了对将自定义url重写实现插入基于HTTP的路由&#xff08;http&#xff0c;http4&#xff0c;jetty&#xff09;的支持。 当您使用骆驼代理/桥接HTTP路由时&#xff0c;这使人们可以控制url映射。 例如&#xff0c;假…

我的改进版2048(1)

&#xff08;假设有谁想要这个软件的话&#xff0c;在评论中留一个邮箱吧。&#xff09; 前几天好几次看到有朋友晒出玩2048刷高分的截图。我就想我能不能也做一个2048呢&#xff1f;细致想了想2048游戏的规律&#xff0c;发现事实上逻辑上非常easy&#xff0c;也不用研究什么算…

什么是 HTML5?

HTML5 是下一代的 HTML。 什么是 HTML5&#xff1f; HTML5 将成为 HTML、XHTML 以及 HTML DOM 的新标准。 HTML 的上一个版本诞生于 1999 年。自从那以后&#xff0c;Web 世界已经经历了巨变。 HTML5 仍处于完善之中。然而&#xff0c;大部分现代浏览器已经具备了某些 HTML5 支…

涉及CDI和JSF的过期对话的定制错误页面

自上次写博客以来已经有一段时间了。 我一直在考虑写一些技术博客&#xff0c;但最终却忙于其他事情。 上周&#xff0c;在Coderanch论坛上进行了非常有趣的讨论。 甚至更有趣&#xff0c;因为它涉及JBoss。 熟悉Java EE Web应用程序的开发人员会知道&#xff0c;Web应用程序部…