<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AV</title>
</head>
<body>
<div class="content">
<p>注意:audio标签设置controls="controls"才可以再页面中显示</p>
<p>IE9开始支持</p>
<div class="audio">
<audio src="./other/audio.mp3" type="audio/mpeg" controls="controls" autoplay preload="auto" loop>
不支持audio
</audio>
</div>
<div class="video">
<video src="./other/video.mp4" class="video" controls="controls" autoplay preload="metadata" poster="./other/img.jpg" width="500" id="videoElement">
不支持video
</video>
</div>
<div class="networkState"></div>
<button id="getVideoURL">getVideoURL</button>
<button id="palyVideo">palyVideo</button>
<button id="pauseVideo">pauseVideo</button>
</div>
<script>
var page = {
init : function(){
this.listener();
},
listener : function(){
var video = document.getElementById('videoElement'); //error属性:不能正常读取,使用媒体数据
video.addEventListener('error', function(){
var error = video.error;
switch(error.code){
case 1 :
alert("视频的下载过程被中止");
break;
case 2 :
alert("网络发生故障,视频的下载过程被中止");
break;
case 3 :
alert('解码失败');
break;
case 4 :
alert("媒体资源不可用或是媒体格式不被支持");
}
},false); //networkState属性:加载过程使用networkState属性读取当前网络状态
video.addEventListener('progress',function(e){
var networkStateDisplay = document.getElementById('networkState');
if(video.networkState === 2){
//计算已加载的字节数与总字节数
networkStateDisplay.innerHTML = "加载中...[" + e.loaded + "/" + e.total + "byte]";
}
else if(video.networkState === 3){
networkStateDisplay.innerHTML = "加载失败";
}
},false); //使用currentSrc属性:读取媒体数据的URL地址(只读)
var videoURL = video.currentSrc,
videoURLBtn = document.getElementById('getVideoURL');
videoURLBtn.onclick = function(){
//这里是空的,还不知道为什么???
console.log(videoURL);
}
//buffered属性 //readState属性 //seeking属性与seekable属性 //currenTime属性
//startTime属性 //duration属性 //play属性(开始时间,结束时间)
//paused属性(true_暂停,false_播放)
//ended属性(true_播放完毕,false_未完毕) //defaultPlaybackRate,playbackRate属性 //volume,muted属性 /*
方法:
play(),播放
pause(),暂停
load(),重新载入
*/ //监听视频播放结束事件
//注意这里不设置loop循环播放
video.addEventListener('ended',function(){
alert("播放结束");
},true) var palyVideoBtn = document.getElementById('palyVideo'),
pauseVideoBtn = document.getElementById('pauseVideo');
//播放视频play()
palyVideoBtn.onclick = function(){
video.play();
}
//暂停视频pause()
pauseVideoBtn.onclick = function(){
video.pause();
} /*
canPlayType方法:
空字符串——不支持
maybe——可能支持
probably:支持
*/
var support = video.canPlayType("video/mp4");
console.log(support);//maybe /*
在媒体读取和播放的过程中,还有一系列的事件。
对这些事件的捕捉:
(1)监听的方式
(2)获取事件句柄
*/ }
}
window.onload = page.init();
</script>
</body>
</html>

H5_ 多媒体video,autio使用示例的更多相关文章

  1. html5多媒体Video/Audio

    video:    1.常见的视频格式 视频的组成部分:画面.音频.编码格式 视频编码:H.264.theora.VP8(google开源)      2.常见的音频格式     编码:AAC.MP3 ...

  2. flask的模板引擎jinja入门教程 包含一个通过网络实时传输Video视频流的示例

    本文首发于个人博客https://kezunlin.me/post/1e37a6/,欢迎阅读最新内容! tutorial to use python flask jinja templates and ...

  3. HTML5新标签与特性---多媒体

    多媒体标签 embed:标签定义嵌入的内容 audio:播放音频 video:播放视频 多媒体 embed(会使用) embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.M ...

  4. css知识总结

    ---# 学习目标:> 1. 学会使用CSS选择器> 2. 熟记CSS样式和外观属性> 3. 熟练掌握CSS各种选择器> 4. 熟练掌握CSS各种选择器> 5. 熟练掌握 ...

  5. H5新标签(适合新手入门)

    H5新标签 文档类型设定 document HTML: sublime 输入 html:4s XHTML: sublime 输入 html:xt HTML5 sublime 输入 html:5 < ...

  6. HTML超全笔记

    HTML概述 概念:是最基础的网页开发语言 Hyper Text Markup Language 超文本标记语言 超文本: 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本. 标记 ...

  7. 前端基础-HTML(2)

    1. 什么是标签以及标签的分类: 在HTML页面中,带有“< >”符号的元素被称为HTML标签,如上节提到的 <HTML>.<head>.<body>都 ...

  8. 蒲公英 · JELLY技术周刊 Vol.35: Flash 四宗罪?

    蒲公英 · JELLY技术周刊 Vol.35 Flash 曾是 Web 迈向新世代的福音书,它为这个世界带来了缤纷色彩,但也如伊甸园的苹果,闪耀着智慧的光芒,却四灾随行.诞生 1995 年至今 25 ...

  9. html5 新增标签和特性

    文档类型设定 document HTML: XHTML: HTML5 字符设定 <meta http-equiv="charset" content="utf-8& ...

随机推荐

  1. Python爬虫从入门到进阶(3)之requests的使用

    快速上手(官网地址:http://www.python-requests.org/en/master/user/quickstart/) 发送请求 首先导入Requests模块 import requ ...

  2. # 20175333曹雅坤《Java程序设计》第四周学习总结

    教材学习内容总结 第五章:子类与继承 5.1子类与父类:关键字extends 5.2子类的继承性:如果子类与父类在一个包中,除了private其他都可以继承:如果不在一个包中,则private和友好都 ...

  3. 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归

    ❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...

  4. Mock.js简易教程,脱离后端独立开发,实现增删改查功能(转)

    在我们的生产实际中,后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于是有没有可以制造假数据来模拟后端接口呢, ...

  5. 收集Typecho 0.9还能用的插件

    收集Typecho 0.9还能用的插件 名称 描述 版本 作者 BaiduSubmit 百度结构化插件 for Typecho 0.5.2 老高 CateFilter 首页过滤指定分类 1.2.1 R ...

  6. IE兼容事件绑定V1.0

    想要兼容IE678,少用原型,因为它们没有完全实现ECMA-262规范 (function(window){ //兼容IE678时少用原型,因为它没有完全遵循ECMA-262规范 //衬垫代码:isA ...

  7. JS 冷知识,运行机制

    数组取最小.最大值 var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 ...

  8. java异常,异常处理,异常类 关键字:throws 和 throw 自定义的异常类

    package cn.kecheng; import java.util.Scanner; /**异常:异常是指在程序的运行过程中所发生的不正常的情况,它会中断正在运行的程序 异常处理机制:java中 ...

  9. 个人NABCD

    采用NABCD模型对我们的团队项目大学生失物招领平台进行了详细的需求分析说明,其中N指(Need需求),A (Approach 做法),B (Benefit好处),C (Competitors 竞争) ...

  10. Typescript---01 数据类型

    Typescript数据类型 1. 布尔值boolean let isDone: boolean = false; 注意: 使用构造函数Boolean创造的对象不是布尔值,它是一个对象.所以下边的示例 ...