HTML5——音频audio与视频video

文件日志地址    http://blog.csdn.net/q1056843325/article/details/60336226

音频与视频现在已经变得越来越流行

各个网站为了保证跨浏览器的兼容性

仍然选择使用flash

(源码截自优酷)

多媒体标签

使用

HTML5增加了audio与video两个多媒体标签

兼容性还不错,低版本IE不支持

可以使我们不需要使用任何浏览器插件就能够插入音频与视频控件

而且非常的简单

(源码截自Bilibili)

元素用法如下

  • 1 <audio src="media/xi-Halcyon.mp3" id="demoAudio">不支持H5-audio</audio>
  • 2 <video src="media/Animation.mp4" id="demoVideo">不支持H5-video</video>

标签中内容如果浏览器不支持该标签就会显示

当然使用这两个元素的时候

最起码要添加src属性,属性值就是资源的url

但是每个浏览器由于版权问题支持的媒体格式也不同

所以就可以使用下面的方式

<audio id="demoAudio">
    <source src="media/xi-Halcyon.mp3">
    <source src="media/xi-Halcyon.ogg">
    ...
    不支持H5-audio
</audio>

<video id="demoVideo">
    <source src="media/Animation.mp4">
    <source src="media/Animation.webm">
    ...
    不支持H5-video
</video>

这样指定不同的资源格式

也保证了各个浏览器的兼容性

属性

audio和video标签除了src外

还有一些公有的属性

属性 描述
autoplay 设置该属性后,音/视频资源就绪后立即播放
controls 设置该属性后,则显示浏览器播放控制控件
loop 设置该属性后,则音/视频结束后重新循环开始播放
preload 设置该属性后,则音/视频在页面加载时进行加载,并预备播放(使用autoplay会忽略该属性)

前三个属性属性名与属性值相同,直接添加属性名即可

preload有如下属性值

  • none 不加载数据
  • metedata 仅加载元数据(时长、比特率、帧大小等)
  • auto 浏览器加载它认为适量的媒体内容

比如想要在浏览器添加一段音乐

并且加载后立即播放,循环播放

使用浏览器的播放控件

  • <audio src="media/xi-Halcyon.mp3" id="demoVideo" autoplay controls loop></audio>

控件的样式各个浏览器都不一样

随着浏览器版本的更新,可能还会更新样式



video元素还有独有的属性poster

属性值是图片资源的url

用来设置视频播放前的一张占位图片

<video src="media/Animation.mp4" id="demoVideo" width="500" height="400" poster="images/preimg.jpg" controls></video>
  • 1
  • 1



点击播放后,视频正常播放

脚本化音视频

元素

使用js获取dom节点就很简单了

  • var a = document.getElementById(‘demoAudio‘);
  • 2   var v = document.getElementById(‘demoVideo‘);

类似于image的Image构造函数

Audio也可以通过类似的方式创建(Video不可以)

区别在于Image创建的图片是要插入文档的

但是Audio不需要

  • var a = new Audio(‘song.mp3‘);

然后可以为它添加autoplay、loop等属性

然后添加到页面

接口

在获取的DOM节点上可以使用浏览器提供的接口属性和方法

常用的属性、方法如下

  • currentSrc 媒体数据的URL地址
  • volume 播放音量
    • 介于0~1(注意超范围会报错),默认1最大音量
  • muted 是否静音
    • 设置true进入静音模式
  • playbackRate 媒体播放速度
    • 默认1.0常速,>1快进,<1慢放(负值表回放但无浏览器实现此功能)
  • defaultPlaybackRate 媒体默认的播放速度
  • currentTime 当前播放时间(单位s)
  • duration 媒体时长(单位s)
  • play() 播放音/视频
  • pause() 暂停音/视频
  • load() 重新加载音/视频(通常用于修改元素属性后)


除此之外还有

  • played 已经播放的时间段
  • buffered 已经缓冲的时间段
  • seekable 用户可以跳转的时间段

它们都是TimeRanges对象

每个对象都有一个length属性(表示当前时间段)

以及start()和end()方法(返回当前时间段的起始时间点和结束时间点,单位s)

start()和end()都有一个数字参数,表示第一个时间段

确定当前缓存内容百分比:

  • 1   var percentLoaded = Math.floor(song.buffered.end(0)/song.duration*100)


下面三个布尔属性表示媒体播放器的状态

  • paused 是否暂停
  • seeking 是否正调到一个新的播放点
  • ended 是否播放结束并停止


并不是所有浏览器都支持video和audio的所有编解码器

canPlayType()方法就是用来鉴定时候支持某一格式的媒体资源

返回字符串maybe、probably或空字符串

如果只传入MIME类型,则返回maybe

如果同时传入MIME类型和编解码器,则返回probably(可能性增加了)

只是因为媒体文件只不过是音/视频的容器

真正决定文件能否播放的还得是编码格式

  • 1 console.log(a.canPlayType(‘audio/mp4‘)); //maybe
  • 2 console.log(a.canPlayType(‘audio/mp4;codecs="mp4a.40.2"‘)); //probably


下面的状态位属性也了解一下

  • readyState 就绪状态

    • 0 = HAVE_NOTHING - 没有关于音/视频是否就绪的信息
    • 1 = HAVE_METADATA - 关于音频/视频就绪的元数据
    • 2 = HAVE_CURRENT_DATA - 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/ms
    • 3 = HAVE_FUTURE_DATA - 当前及至少下一帧的数据可用
    • 4 = HAVE_ENOUGH_DATA - 可用数据足以开始播放
  • netWorkState 网络状态
    • 0 = NETWORK_EMPTY - 音/视频尚未初始化
    • 1 = NETWORK_IDLE - 音/视频是活动的且已选取资源,但并未使用网络
    • 2 = NETWORK_LOADING - 浏览器正在下载数据
    • 3 = NETWORK_NO_SOURCE - 未找到音/视频来源
  • error.code 错误状态
    • 1 = MEDIA_ERR_ABORTED - 取回过程被用户中止
    • 2 = MEDIA_ERR_NETWORK - 当下载时发生错误
    • 3 = MEDIA_ERR_DECODE - 当解码时发生错误
    • 4 = MEDIA_ERR_SRC_NOT_SUPPORTED - 不支持音频/视频

事件

除了接口属性方法以外

还有必不可少的事件模型

如果我们不想使用浏览器的控件而是定义自己的播放控制组件

就要使用这套事件了

  • play 播放时触发
  • pause 暂停时触发
  • loadedmetadata 浏览器获取完媒体元数据时触发
  • loadeddata 浏览器加载完当前帧媒体数据时触发
  • ended 播放结束后停止时触发

初次之外还有很多事件

很多不常用

在w3c截了一张图



通过接口与事件

也可以简单的实现自己简陋的音乐播放器

  • <button id="btn">播放</button>
  • 2 <span id="cur">0s</span>/<span id="dur">0s</span><br>
  • 3 音量:<input type="range" id="vol">
var audio = new Audio(‘media/xi-Halcyon.mp3‘);
var btn = document.getElementById(‘btn‘);
var vol = document.getElementById(‘vol‘);
var cur = document.getElementById(‘cur‘);
var dur = document.getElementById(‘dur‘);
var state = ‘pause‘;

vol.value = 100;
audio.onloadeddata = function(){
  dur.textContent = Math.floor(audio.duration) + ‘s‘;
}

setInterval(function(){
  cur.textContent = Math.floor(audio.currentTime) + ‘s‘;
}, 200);

btn.onclick = function(){
  if(state === ‘play‘){
    state = ‘pause‘;
    btn.textContent = ‘播放‘;
    audio.pause();
  }else{
    state = ‘play‘;
    btn.textContent = ‘暂停‘;
    audio.play();
  }
}

vol.oninput = function(){
  audio.volume = vol.value/100;
}

时间: 2024-10-26 18:15:08

HTML5——音频audio与视频video的相关文章

HTML5 音频audio 和视频video实用基础教程

1.音频(audio)<audio controls="controls"><source src="这里面放入音频文件路径"></source></audio>2.视频(video) <video controls="controls" loop="loop" autoplay="autoplay" id="video">&l

html5声频audio和视频video说明

现在已经掀起了html5热潮,本文来说明下html5声频audio和视频video 在html5中出现了一些新特性: * canvas 元素    * 视频 video 和 声频audio 元素 :    * 对本地离线存储(localStorage,sessionStorage)的支持 :    * 新增特殊内容元素:article.footer.header.nav.section :    * 新增表单控件: calendar.date.time.email.url.search . 今天

html5声频audio和视频video

html5作为下一代web标准,年前轩起了html5热潮.对于html5我只是本着了解看看.关于html5和RIA(silverlight,flash,JavaFx等)我不想说什么,也没有什么可说的,存在就有其存在的理由.孰优孰劣,留给事实.时间来证明的. 在html5中出现了一些新特性: canvas 元素 视频 video 和 声频audio 元素 : 对本地离线存储(localStorage,sessionStorage)的支持 : 新增特殊内容元素:article.footer.head

HTML5音频audio详解

直到现在,仍然不存在一项旨在网页上播放音频的标准. 目前,大多数音频是通过插件(比如 Flash)来播放的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定了一种通过 audio 元素来包含音频的标准方法. audio 元素能够播放声音文件或者音频流. 当前,audio 元素支持三种音频格式:   IE 9 Firefox 3.5 Opera 10.5 Chrome 3.0 Safari 3.0 Ogg Vorbis   √ √ √   MP3 √     √ √ Wav   √ √  

HTML5音频audio元素

一.音频文件格式.ogg/.mp3/.wav/.aac/.mp4/.opus,最后一种新的音频文件格式,在本书写作之时只有 Firefox 支持.对于音频,最好的两种格式是 Ogg 和 MP3. 二.在网页中添加带控件的单个音频文件<audio src="my-audio.ext" autoplay controls muted loop preload></audio>注意,包含 autoplay 属性会覆盖 preload 属性的设置,因为只有加载音频文件才

HTML5 音频 &lt;audio&gt;

HTML5 提供了播放音频的标准. 一.Web 上的音频 直到现在,仍然不存在一项旨在网页上播放音频的标准. 今天,大多数音频是通过插件(比如 Flash)来播放的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定了一种通过 audio 元素来包含音频的标准方法. audio 元素能够播放声音文件或者音频流. 二.使用audio标签 <audio src="song.ogg" controls="controls"> </audio>

HTML5音频audio属性

来源:https://segmentfault.com/a/1190000008932943?utm_source=tuicool&utm_medium=referral audio 的控制函数主要有: load() 加载音频.视频软件,通常不必调用,除非是动态生成的元素,用来在播放前预加载play() 加载并播放音频.视频文件,除非文件已经暂停在其他位置,否则默认重头开始播放pause() 暂停处于播放状态的音频.视频文件 audio 的只读媒体特性有: duration 获取媒体文件的播放时

html5 音频和视频(audio And video)

1.音频和视频  Web 上的视频 直到现在,仍然不存在一项旨在网页上显示视频的标准. 今天,大多数视频是通过插件(比如 Flash)来显示的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定了一种通过 video 元素来包含视频的标准方法. 视频格式 当前,video 元素支持三种视频格式: 格式    IE Firefox Opera Chrome Safari Ogg     No 3.5+ 10.5+  5.0+ No MPEG4 9.0+  No           No 5.

HTML5视频Video 音频Audio

视频协议 视频格式 Flash HTML5 HTTP flv HTTP f4v HTTP mp4 HTTP m3u8 HTTP webm HTTP ogg RTMP flv RTMP f4v RTMP mp4 RTMP 直播流 万能播放插件js ckplayerhttp://www.ckplayer.com/ m3u8是m3u的一种,是utf-8格式的,Apple 为了提高流播效率开发的技术,特点是将流媒体切分为若干 TS 片段(比如每10秒一段),然后通过一个扩展的 m3u 列表文件将这些 T