您现在的位置是:网站首页> 编程资料编程资料

HTML5中视频音频的使用详解_html5_网页制作_

2021-09-13 1455人已围观

简介 这篇文章主要给大家总结介绍了关于HTML5中视频音频的使用的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

一、video

1.1 video支持视频格式

常见的视频格式
 

  • 视频的组成部分:画面、音频、编码格式
  • 视频编码:H.264、Theora、VP8(google开源)

HTML5支持的视频格式:

1、Ogg 

     带有Theora视频编码+Vorbis音频编码的Ogg文件 

         支持的浏览器:F、C、O 

2、MEPG4 

     带有H.264视频编码+AAC音频编码的MPEG4文件 

     支持的浏览器: S、C 

3、WebM 

     带有VP8视频编码+Vorbis音频编码的WebM格式 

     支持的浏览器: I、F、C、O 

     劣势:视频少、转码器几乎没有,不好转码 

想要video能自动填充慢父div的大小,只要给video标签加上style="width= 100%; height=100%; object-fit: fill"即可

1.2 标签原型

指定一种视频格式,不能播就提示

给定多种视频格式,浏览器根据自身支持程度选择播放哪一种
 

注意:多个source标签,浏览器会从第一个开始识别,如果第一个不被识别,则会继续识别第二个;如果第一个识别成功,则会直接播放第一种格式视频

1.3 重要的video标签属性

属性(常用)功能描述
controlscontrols是否显示播放控件
autoplayautoplay设置是否打开浏览器后自动播放
widthPilex(像素)设置播放器的宽度
heightPilex(像素)设置播放器的高度
looploop设置视频是否循环播放(即播放完后继续重新播放)
preloadpreload设置是否等加载完再播放
srcurl设置要播放视频的url地址
posterimgurl设置播放器初始默认显示图片
autobufferautobuffer设置为浏览器缓冲方式,不设置autoply才有效

API 属性 

属性描述
audioTracks返回表示可用音轨的 AudioTrackList 对象
buffered返回表示音频/视频已缓冲部分的 TimeRanges 对象
controller返回表示音频/视频当前媒体控制器的 MediaController 对象
crossOrigin设置或返回音频/视频的 CORS 设置
currentSrc返回当前音频/视频的 URL
currentTime设置或返回音频/视频中的当前播放位置(以秒计)
defaultMuted设置或返回音频/视频默认是否静音
defaultPlaybackRate设置或返回音频/视频的默认播放速度
duration返回当前音频/视频的长度(以秒计)
ended返回音频/视频的播放是否已结束
error返回表示音频/视频错误状态的 MediaError 对象
mediaGroup设置或返回音频/视频所属的组合(用于连接多个音频/视频元素)
muted设置或返回音频/视频是否静音
networkState返回音频/视频的当前网络状态
paused设置或返回音频/视频是否暂停
playbackRate设置或返回音频/视频播放的速度
played返回表示音频/视频已播放部分的 TimeRanges 对象
readyState返回音频/视频当前的就绪状态
seekable返回表示音频/视频可寻址部分的 TimeRanges 对象
seeking返回用户是否正在音频/视频中进行查找
startDate返回表示当前时间偏移的 Date 对象
textTracks返回表示可用文本轨道的 TextTrackList 对象
videoTracks返回表示可用视频轨道的 VideoTrackList 对象
volume设置或返回音频/视频的音量
常用API属性
  • duration:返回当前音频/视频的长度(以秒计)
  • paused:设置或返回音频/视频是否暂停
  • currentTime:设置或返回音频/视频中的当前播放位置(以秒计)
  • ended:返回音频/视频的播放是否已结束

1.4 Video API

1.4.1 Video 方法

API事件说明
playvideo.play(); 播放视频
pausevideo.pause(); 暂停播放视频
loadvideo.load(); 将全部属性回复默认值,视频恢复重新开始状态
canPlayTypevar support = videoid.canPlayType(‘video/mp4′); 

判断浏览器是否支持当前类型的视频格式

返回值:
        空字符串:不支持Maybe:可能支持Probably:完全支持

常用方法

  • play():开始播放音频/视频
  • pause():暂停当前播放的音频/视频

1.4.2网络状态

获取video对象

 Media = document.getElementById("media");

1.Media.currentSrc; 

    返回当前资源的URL 

2.Media.src = value; 

    返回或设置当前资源的URL 

3.Media.canPlayType(type); 

    是否能播放某种格式的资源 

4.Media.networkState; 

    0.此元素未初始化 

    1.正常但没有使用网络 

    2.正在下载数据 

    3.没有找到资源 

5.Media.load(); 

    重新加载src指定的资源 

6.Media.buffered; 

    返回已缓冲区域,TimeRanges 

7.Media.preload; 

    none:不预载 

    metadata:预载资源信息 

    auto: 

1.4.3 准备状态

1.Media.readyState 

2.Media.seeking; 

    是否正在seeking 

1.4.4 回放状态

1.Media.currentTime = value; 

    当前播放的位置,赋值可改变位置 

2.Media.startTime; 

    一般为0,如果为流媒体或者不从0开始的资源,则不为0 

3.Media.duration; 

    当前资源长度 流返回无限 

4.Media.paused; 

    是否暂停 

5.Media.defaultPlaybackRate = value; 

    默认的回放速度,可以设置 

6.Media.playbackRate = value; 

    当前播放速度,设置后马上改变 

7.Media.played; 

    返回已经播放的区域,TimeRanges,关于此对象见下文 

8.Media.seekable; 

    返回可以seek的区域 TimeRanges 

9.Media.ended; 

    是否结束 

10.Media.autoPlay; 

    是否自动播放 

11.Media.loop; 

    是否循环播放 

12.Media.play(); 

    播放 

13.Media.pause(); 

    暂停 

1.4.5 视频控制

  • Media.controls;//是否有默认控制条
  • Media.volume = value; //音量
  • Media.muted = value; //静音
  • TimeRanges(区域)对象
  • TimeRanges.length; //区域段数
  • TimeRanges.start(index) //第index段区域的开始位置
  • TimeRanges.end(index) //第index段区域的结束位置

1.4.6 相关事件

1.首先绑定事件的话可以通过js中的addEventListener方法来绑定事件 

事件说明
loadstart客户端开始请求数据
progress客户端正在请求数据
suspend延迟下载
abort客户端主动终止下载(不是因为错误引起)
loadstart客户端开始请求数据
progress客户端正在请求数据
error请求数据时遇到错误
stalled网速失速
playplay()和autoplay开始播放时触发
pausepause()触发
loadedmetadata成功获取资源长度
loadeddata-
waiting等待数据,并非错误
playing开始回放
canplay可以播放,但中途可能因为加载而暂停
canplaythrough可以播放,歌曲全部加载完毕
seeking寻找中
seeked寻找完毕
timeupdate播放时间改变
ended播放结束
ratechange播放速率改变
durationchange资源长度改变
volumechange音量改变

2.常用事件 

  • oncanplay:当文件就绪可以开始播放时运行的脚本(缓冲已足够开始时)。
  • ontimeupdate: 当播放位置改变时(比如当用户快进到媒介中一个不同的位置时)运行的脚本。
  • onended:当媒介已到达结尾时运行的脚本(可发送类似“感谢观看”之类的消息)。

1.4.7 其他

1.全屏:

  • element.webkitRequestFullScreen();( webkit)
  • element.mozRequestFullScreen(); (Firefox )
  • element.requestFullscreen(); (W3C )

2.退出全屏:

  • document.webkitCancelFullScreen(); (webkit )
  • document.mozCancelFullScreen(); (Firefox)
  • document.exitFullscreen(); (W3C)

二、audio

2.1 audio格式

1.常见的音频格式

    音频编码:ACC、MP3、Vorbis 

2.HTML5支持的音频格式:

  • Ogg 免费 支持的浏览器:C、F、O
  • MP3 收费 支持的浏览器: I、C、S
  • Wav 收费 支持的浏览器: F、O、S

2.2 audio标签中的一些常用属性

属性属性值注释
srcurl播放的音乐的url地址(火狐只支持ogg的音乐,而IE9只支持MP3格式的音乐。chrome貌似全支持)
preloadpreload预加载(在页面被加载时进行加载或者说缓冲音频),如果使用了autoplay的话那么该属性失效。
looploop循环播放
controlscontrols是否显示默认控制条(控制按钮)
autoplayautoplay自动播放

对于音乐格式的支持 

音频格式ChromeFirefoxIE9OperaSafari
OGG支持支持支持不支持不支持
MP3支持不支持支持不支持支持
WAV不支持支持不支持支持不支持

audio可通过new来创建。也可以通过用document来获取

 //通过new关键字来创建Audio对象 var Music = new Audio("test.mp3"); //通过document来获取已经存在的Audio对象 var Music = document.getElementById("audio"); //当然这里也可以使用document.getElementsByClassName('className')等其他的方法来获取。

2.3 api所提供的对audio标签操作的一些属性和方法

属性注释
duration获取媒体文件的总时长,以s为单位,如果无法获取,返回NaN
paused如果媒体文件被暂停,那么paused属性返回true,反之则返回false
ended如果媒体文件播放完毕返回true
muted用来获取或设置静音状态。值为boolean
volume控制音量的属性值为0-1;0为音量最小,1为音量最大
startTime返回起始播放时间
error返回错误代码,为uull的时候为正常。否则可以通过Music.error.code来获取
currentTime用来获取或控制当前播放的时间,单位为s。
currentSrc以字符串形式返回正在播放或已加载的文件

2.4 常用的控制用的函数

函数作用
load()加载音频、视频软件
play()加载并播放音频、视频文件或重新播放暂停的的音频、视频
pause()暂停出于播放状态的音频、视频文件
canPlayType(obj)测试是否支持给定的Mini类型的文件

2.5 audio标签API中的常用事件

首先绑定事件的话可以通过js中的addEventListener方法来绑定事件  

事件名称事件作用
loadstart客户端开始请求数据
progress客户端正在请求数据(或者说正在缓冲)
playplay()和autoplay播放时
pausepause()方法促发时
ended当前播放结束
timeupdate当前播放时间发生改变的时候。播放中常用的时间处理
canplaythrough歌曲已经载入完全完成
canplay缓冲至目前可播放状态。

其实video的api和audio几乎一致。稍稍有点不同。所以基本上会了一个其他的也就都会了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

-六神源码网