资讯专栏INFORMATION COLUMN

那是我在夕阳下的奔跑:边跑边学习html5之audio与video

LiuZh / 2568人阅读

摘要:尤其是乔布斯在年发布的一篇的文章。乔布斯在里面写下了关于的一点看法,说明自己为什么不使用,谈到关于的一些问题,比如开放性,安全性,对于设备续航的影响,不利于触摸屏,等等。终于,于年月日,爸爸也放弃治疗了,宣布将于年正式退休。

今天为大家分享一下html5中的视频(video)与音频(audio)。在进入主题之前我们先了解一下Flash与html5这两种技术的时代背景与发展历史。

1.前言

Flash被退休与html5的上位

Flash这项技术诞生于20多年前,曾被应用于98%的个人电脑上,是开发者最青睐的软件之一,被用于开发游戏、视频播放器和可在多个网络浏览器上运行的应用。Falsh的前半生可以说是辉煌的,在Flash最为鼎盛的时期,来自Adobe的官方统计,全球有将近200万的Flash开发者。

但它仅仅是满足了人们的短期需求,它没有预见移动设备革命的到来。业界现在普遍认为,Flash的下坡路是从和苹果的决裂开始的。尤其是乔布斯在2010年发布的一篇《thoughts-on-flash》的文章。乔布斯在里面写下了关于Flash的一点看法,说明自己为什么不使用Flash,谈到关于Flash的一些问题,比如开放性,安全性,对于设备续航的影响,不利于触摸屏,等等。自此之后,这种技术的热度开始下降,HTML5等其他技术已经逐步取代了Flash。在现下最普及的网页浏览器Chrome上,Flash的使用率急剧下降。据谷歌称,2014年80%的桌面用户每天使用Flash播放器,而目前只有17%。终于,于2017年7月25日,Adobe爸爸也放弃治疗了,宣布flash将于2020年正式退休。

HTML5是HTML的最新版本,它扩大了可以嵌入在网页中的多媒体元素的列表。HTML5支持可扩展矢量图形(SVG)的多媒体特定标签、动画和使用CANVAS元素,级联样式表(CSS)和Java的音频和视频的交互性。HTML5无需第三方插件(例如插件和API),以便通过在文档文本本身中嵌入代码来运行内容。这解决了以前的迭代发现的兼容性问题,其中需要第三方插件或专有API来正确呈现HTML文档。

作为现在可以支持Flash类技术的开源语言,HTML5已经成为Web开发的新首选。所谓长江后浪推前浪,一代更比一代浪。html5可以说是站在Flash这个巨人的肩膀上,Flash留给html5大量的遗产,尤其是很多HTML5相关的视频和音频项目在过去几年的发展中大量的融合了Flash相关的媒体库来提供更多的功能支持,当今大量的HTML5 Video Player都是从原来的Flash领域变换而来。这一切都是Flash技术带给当今HTML5领域的财富。在拥抱新技术的同时,也感谢flash对互联网带来的深远影响。

废话不多说,下面一起进入正题。

2.audio与video

2.1 标签
标签主要包括

2.2 视频容器
不论是音频文件还是视频文件,实际上都只是一个容器文件,这点类似于压缩了一组文件的ZIP文件。视频文件(视频容器)包含了音频轨道、视频轨道和其他一些元数据。视频播放的时候,音频轨道和视频轨道是绑定在一起的。元数据部分包含了该视频的封面、标题、子标题、字幕等相关信息。主流的视频容器支持的格式包括:.avi,.flv,.mp4,.ogv等。

2.3 编解码器
音频和视频的编解码器是一种算法,能够对特定格式的音频和视频文件进行编码和解码,使其在浏览器中能够快速的加载与解析。极大的减少了用户的等待时间,提升了用户体验。常见的音频编解码器有AAC、MPEG-3、Ogg Vorbis,视频编解码器包括H.264、VP8、Ogg Theora。

2.4 媒体元素
video/audio标签属性包括:
autoplay:控制是否自动播放;
controls: 控制是否显示播放控件;
loop : 媒体是否循环播放;
muted:规定视频输出应该被静音;
preload:在页面加载时进行加载,并预备播放;
src:要加载的资源文件。
其中video还有几个特殊的标签属性
poster : 视频播放前的预览图片;
width、height : 设置视频的尺寸;
videoWidth、 videoHeight : 视频的实际尺寸(只读)。

2.5 js中的audio与video
(1)创建

var ov = document.createElment("video") // 直接new 一个对象,参数为src。
var oa = new Audio("http://www.baidu.com/test.mp3")

(2)获取

与常规的dom节点获取没有区别。

(3)属性和方法

(4)事件

2.6 浏览器的支持情况
从下表可以看出浏览器对媒体元素的支持情况。

audio
Firefox:支持 Ogg Vorbis和WAV   
Opera :支持Ogg Vorbis和WAV   
Safari :支持MP3,AAC格式 ,和MP4   
Chrome :支持Ogg Vorbis,MP3,WAV,AAC和MP4   
Internet Explorer 9+ :支持MP3,AAC格式 ,和MP4   
IOS :支持MP3,AAC格式,和MP4
Android :支持AAC和MP3
video
Firefox:支持Ogg Theora格式和WEBM
Opera:支持Ogg Theora格式和WEBM
Safari:支持MP4
Chrome:支持Ogg Theora格式,MP4和WEBM
Internet Explorer 9:支持MP4和WEBM(需要安装插件)
IOS:支持MP4
Android:支持MP4和WEBM(Android 2.3版本以上)
为了最大程度支持所有上面提到的浏览器,建议开发者使用Ogg Vorbis和MP3这两种音频格式,使用WEBM和MP4作为视频文件的格式并将资源加载在source标签中。
例如:


与直接在视频或音频标签中写src相比,使用source标签加载资源的好处是,当浏览器无法解析第一种视频或音频的格式时,将会解析第二种格式,可以加载多个source。

3.demo

介绍了那么多,最后分享我通过媒体元素的一些属性和方法做的一个自定义多媒体播放器,代码地址:自定义彬彬播放器,代码地址:自定义播放器源码。

-----------------------------------------我是分割线君-----------------------------------------------

最后,擎创公司官网已经上线,小伙伴们请有兴趣的可以看看。官网地址:www.eoitek.com

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/112499.html

相关文章

  • 那是我在夕阳下的奔跑跑边学习html5audiovideo

    摘要:尤其是乔布斯在年发布的一篇的文章。乔布斯在里面写下了关于的一点看法,说明自己为什么不使用,谈到关于的一些问题,比如开放性,安全性,对于设备续航的影响,不利于触摸屏,等等。终于,于年月日,爸爸也放弃治疗了,宣布将于年正式退休。 今天为大家分享一下html5中的视频(video)与音频(audio)。在进入主题之前我们先了解一下Flash与html5这两种技术的时代背景与发展历史。 1.前...

    gself 评论0 收藏0
  • 那是我在夕阳下的奔跑跑边学习html5audiovideo

    摘要:尤其是乔布斯在年发布的一篇的文章。乔布斯在里面写下了关于的一点看法,说明自己为什么不使用,谈到关于的一些问题,比如开放性,安全性,对于设备续航的影响,不利于触摸屏,等等。终于,于年月日,爸爸也放弃治疗了,宣布将于年正式退休。 今天为大家分享一下html5中的视频(video)与音频(audio)。在进入主题之前我们先了解一下Flash与html5这两种技术的时代背景与发展历史。 1.前...

    flybywind 评论0 收藏0
  • 那是我在夕阳下的奔跑跑边学习html5audiovideo

    摘要:尤其是乔布斯在年发布的一篇的文章。乔布斯在里面写下了关于的一点看法,说明自己为什么不使用,谈到关于的一些问题,比如开放性,安全性,对于设备续航的影响,不利于触摸屏,等等。终于,于年月日,爸爸也放弃治疗了,宣布将于年正式退休。 今天为大家分享一下html5中的视频(video)与音频(audio)。在进入主题之前我们先了解一下Flash与html5这两种技术的时代背景与发展历史。 1.前...

    mrli2016 评论0 收藏0
  • 是我夕阳下的奔跑-思否

    摘要:不知道标题如何取,正好看到默认的,那就开始第一次奔跑搬砖三年,会偶尔写写博客来记录一下学习的历程。 不知道标题如何取,正好看到默认的,那就开始第一次奔跑 搬砖三年,会偶尔写写博客来记录一下学习的历程。 之前在博客园(上学期间)和CSDN都有写过,也有一段时间自己搭建,但是随着博客园页面越看越难受和CSDN的广告越来越多,以及考虑搭建服务器的成本,最后选择转移到思否上继续进行日常生活,学...

    Bamboy 评论0 收藏0
  • 夕阳下, 那是我在奔跑——单件模式

    摘要:急切的創建對象饿汉式以上爲饿汉式單列設計,該設計是線程安全的,即不同的線程在調用時返回的是統一對象,在加載這個類時,馬上創建了這個類的唯一單列實列。 單件模式(JAVA實現) 定義 單件模式: 確保一個類只有一個實列, 並提供一個全局訪問點 單件模式和全局變量的區別 若將對象賦值給一個全局變量, 則該對象需在程序開始時就創建好, 而改對象可能不會使用, 造成資源浪費, 而單件模式支持...

    lieeps 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<