媒体元素 audio 和 video

HTML5 中 新增了 <autdio> 和 <video> ,可以让人们不需要 Flash等插件 就能在网页中嵌入音频和视频内容。

1、用法和属性

src:指向媒体文件

width:设定元素宽度

height:设定元素高度

poster:指定加载视频是显示的图像的URI

controls:显示自带UI控件

因为并非每个浏览器都支持所有媒体格式,所以可以指定多个媒体来源,不用再标签中指定 src 属性,可以在标签内使用一个或多个<source>

    <div>
        <video id="video" width="500px" height="400px"  poster="img/BG.png" controls autoplay="autoplay">
            <source src="media/v1.mp4"  type="video/mp4" >
            不支持视频播放
        </video>
        <br>


        <video src="media/v1.mp4" width="500px" height="400px"></video>
        <br>

        <audio id="" controls style="height: 100px; width: 500px">
            <source src="media/au1.mp3">
        </audio>
        <br>
        <audio src="media/au1.mp3" controls></audio>
    </div>

2、<video> 和 <audio> 元素共有的属性

autoplay:布尔值,取得或设置自动播放标志

buffered:事件范围,表示已下载的缓冲事件范围的对象

bufferedBytes:字节范围,表示已下载的缓冲的字节范围对象

bufferingRate:整数,下载过程中每秒平均接受到的位数

bufferingThrottled:布尔值,表示浏览器是否对缓冲进行了节流

controls:布尔值,取得或设置controls属性,用于显示或隐藏浏览器内置的控件

currentLoop:整数,媒体文件已经循环的次数

currentSrc:字符串,当前播放文件的URL

currentTime:浮点数,以播放的秒数

defaultPlaybackRate:浮点数,取得或设置默认的播放速度。默认是1.0秒,只能开发人员修改

duration:浮点数,媒体总播放时间(秒数)

ended:布尔值,表示媒体文件是否播放完成

loop:布尔值,取得或设置媒体文件是否循环播放

muted:布尔值,取得或设置是否静音

networkState:整数,表示当前媒体网络连接状态:0表示空,1表示正在加载,2表示正在加载元数据,3表示已经加载了第一帧,4表示加载完成

paused:布尔值,表示播放器是否暂停

playbackRate:浮点数,取得或设置当前的播放速度。用户可以改变这个值,让媒体播放速度变快或变慢

played:事件范围,到目前为止已经播放的事件范围

readyState:整数,表示媒体是否就绪。0表示数据不可用,1表示可以显示当前帧,2表示可以开始播放,3表示 媒体可以从头到尾播放

seekable:时间范围,可以搜索的时间范围

seeking:布尔值,表示播放器是否正在移动到文件中的新位置

src:字符串,媒体文件的来源。任何时候都可以重写这个属性

start:浮点数,取得或设置媒体文件中开始播放的位置,以秒表示

totalBytes:整数,当前资源的总字节数

videoHeight:整数,视频(不一定是元素)的高度,适用于<video>

videoWidth:整数,视频(不一定是元素)的宽度,适用于<video>

volume:浮点数,取得或设置当前音量,职位 0.0 到 1.0

很多属性也可以直接在<audio> 和 <video> 元素中直接设置

3、事件

<audio> 和 <video> 可以触发很多事件,这些事件监控着不同属性的变化,这些变化可能是媒体播放的结果,也可能是用户操作播放器的结果

事 件 触发时机
abort 下载中段
canplay 可以播放时,readyState 值为2
canplaythrough 可以播放,而且应该不会中断,readyState 值为3
canshowcurrentframe 当前帧已经下载完成,readyState 值为1
dataunavailable 数据未准备好,readyState 值为0
durationchange duration 属性的值改变
emptied 网络连接关闭
empty 发生错误阻止了媒体下载
error 下载期间发生网络错误
load 所有媒体已加载完成(废除了)
loadeddata 媒体第一帧已经加载完成
loadedmetadata 媒体的元数据已加载完成
loadstart 下载以开始
pause 播放已暂停
play 播放开始
playing 正在播放
progress 正在下载
ratechange 播放速度改变
seeked 搜索结束
seeking 正移动到新位置
stalled 浏览器尝试下载,但未接收到数据
timeupdate currentTime被不合理或意外地更新
volumechange volume属性值或muted属性值已改变
waiting 播放暂停,等待下载更多数据

4、方法

play() :开始播放

pause():暂停播放

canPlayType(mediaType):检测浏览器是否支持给定的mime类型的格式的媒体文件。返回值可能是:'probably'(可播放),'maybe'(一般情况也是可播放),' '(空字符串,不可播放)。

可能的mime类型:audio/mp4,audio/mpeg,audio/ogg,audio/wav,video/mp4,video/ogg,video/webm

 

<audio>元素还有一个原生的JavaScript 构造函数Audio,可以在任何时候播放音频。可以直接创建一个新实例,并传入文件路径,下载完成后就可以调用 play()播放

   let btn = document.querySelector("#btn");
    btn.addEventListener("click",evt => {

        var audio = new Audio("media/au1.mp3");
        audio.addEventListener("canplaythrough",ev => {
            audio.play();
        },false);

    },false);

猜你喜欢

转载自www.cnblogs.com/zhanglw456/p/10981134.html