HTML5 Audio/Video 标签、属性、方法、事件汇总

11,419次阅读
没有评论

共计 5097 个字符,预计需要花费 13 分钟才能阅读完成。

文章目录

  • HTML 音频 / 视频 方法
  • HTML 音频 / 视频属性
  • HTML 音频 / 视频事件
  • 示例代码

audio 用于播放网络上的音频文件,video 用于播放网络上的视频文件。audio 和 video

标签的属性、方法和事件大部分都是共通的。在不同的浏览器中,它们会有不同的样式。

audio 基本语法

src 指定当前播放的音频文件,controls 播放控制器,loop 歌曲循环,autoplay 自动播放 (chrome66 之后被禁止) 主流浏览器已经关闭了自动播放,需要 js 触发才行,preload 预加载,如果使用了 autoplay 这个属性 preload 就失效了。

audio src="xxxx.mp3" controls="controls" loop="loop" autoplay="autoplay">
 您的浏览器不支持 html5 的 audio 标签
audio>

video 基本语法:

src 源,controls 播放控制器,loop 循环播放,autoplay 自动播放,height,width,宽度和高度,在 Audio 里面不能指定,但是在 Video 里面是可以的,muted 静音,poster 预览图(当视频没有播放或者正在加载时展示给用户的一张图片,为了交互的友好性),preload 预加载,和 autoplay 一块时失效。

video
 src="xxxx.mp4"
 controls="controls"
 loop="loop"
 autoplay="autoplay">
 您的浏览器不支持 html5 的 video 标签
video>

HTML 音频 / 视频 方法

方法 描述
addTextTrack() 向音频 / 视频添加新的文本轨道。
canPlayType() 检测浏览器是否能播放指定的音频 / 视频类型。
load() 重新加载音频 / 视频元素。
play() 开始播放音频 / 视频。
pause() 暂停当前播放的音频 / 视频。

HTML 音频 / 视频属性

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

HTML 音频 / 视频事件

事件 描述
abort 当音频 / 视频的加载已放弃时触发。
canplay 当浏览器可以开始播放音频 / 视频时触发。
canplaythrough 当浏览器可在不因缓冲而停顿的情况下进行播放时触发。
durationchange 当音频 / 视频的时长已更改时触发。
emptied 当目前的播放列表为空时触发。
ended 当目前的播放列表已结束时触发。
error 当在音频 / 视频加载期间发生错误时触发。
loadeddata 当浏览器已加载音频 / 视频的当前帧时触发。
loadedmetadata 当浏览器已加载音频 / 视频的元数据时触发。
loadstart 当浏览器开始查找音频 / 视频时触发。
pause 当音频 / 视频已暂停时触发。
play 当音频 / 视频已开始或不再暂停时触发。
playing 当音频 / 视频在因缓冲而暂停或停止后已就绪时触发。
progress 当浏览器正在下载音频 / 视频时触发。
ratechange 当音频 / 视频的播放速度已更改时触发。
seeked 当用户已移动 / 跳跃到音频 / 视频中的新位置时触发。
seeking 当用户开始移动 / 跳跃到音频 / 视频中的新位置时触发。
stalled 当浏览器尝试获取媒体数据,但数据不可用时触发。
suspend 当浏览器刻意不获取媒体数据时触发。
timeupdate 当目前的播放位置已更改时触发。
volumechange 当音量已更改时触发。
waiting 当视频由于需要缓冲下一帧而停止时触发。

示例代码

添加音频

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    meta http-equiv="X-UA-Compatible" content="IE=edge">
    meta name="viewport" content="width=device-width, initial-scale=1.0">
    title>Documenttitle>
head>
body>
    audio controls autoplay loop muted>
        source src="./media/music.mp3">
        source src="./media/music.ogg">
    audio>
body>
html>

添加视频

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    meta http-equiv="X-UA-Compatible" content="IE=edge">
    meta name="viewport" content="width=device-width, initial-scale=1.0">
    title>Documenttitle>
head>
body>
    
    video width="500" height="300" controls loop autoplay muted poster="./media/rt.jpg">
        source src="./media/explore_promo.mp4">
        source src="./media/video.mp4">
    video>
body>
html>

效果演示:
HTML5 Audio/Video 标签、属性、方法、事件汇总

Js 代码

 // 错误状态  
       Media.error; //null: 正常  
       Media.error.code; //1. 用户终止 2. 网络错误 3. 解码错误 4.URL 无效  
      
    // 网络状态  
       Media.currentSrc; // 返回当前资源的 URL  
       Media.src = value; // 返回或设置当前资源的 URL  
       Media.canPlayType(type); // 是否能播放某种格式的资源  
       Media.networkState; //0. 此元素未初始化  1. 正常但没有使用网络  2. 正在下载数据  3. 没有找到资源  
       Media.load(); // 重新加载 src 指定的资源  
       Media.buffered; // 返回已缓冲区域,TimeRanges  
       Media.preload; //none: 不预载 metadata: 预载资源信息 auto:  
      
    // 准备状态  
       Media.readyState;    //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA  
       Media.seeking; // 是否正在 seeking  
      
    // 回放状态  
       Media.currentTime = value; // 当前播放的位置,赋值可改变位置  
       Media.startTime; // 一般为 0,如果为流媒体或者不从 0 开始的资源,则不为 0  
       Media.duration; // 当前资源长度 流返回无限  
       Media.paused; // 是否暂停  
       Media.defaultPlaybackRate = value;// 默认的回放速度,可以设置  
       Media.playbackRate = value;// 当前播放速度,设置后马上改变  
       Media.played; // 返回已经播放的区域,TimeRanges,关于此对象见下文  
       Media.seekable; // 返回可以 seek 的区域 TimeRanges  
       Media.ended; // 是否结束  
       Media.autoPlay;  // 是否自动播放  
       Media.loop;  // 是否循环播放  
       Media.play();    // 播放  
       Media.pause();   // 暂停  
      
    // 控制  
       Media.controls;// 是否有默认控制条  
       Media.volume = value; // 音量  
       Media.muted = value; // 静音  
      
       //TimeRanges(区域) 对象  
       TimeRanges.length; // 区域段数  
       TimeRanges.start(index) // 第 index 段区域的开始位置  
       TimeRanges.end(index) // 第 index 段区域的结束位置  

事件代码:

     eventTester = function(e){Media.addEventListener(e,function(){console.log((new Date()).getTime(),e);  
    });  
}  
  
eventTester(“loadstart”);   // 客户端开始请求数据  
eventTester(“progress”);    // 客户端正在请求数据  
eventTester(“suspend”);     // 延迟下载  
eventTester(“abort”);       // 客户端主动终止下载(不是因为错误引起),eventTester(“error”);       // 请求数据时遇到错误  
eventTester(“stalled”);     // 网速失速  
eventTester(“play”);        //play() 和 autoplay 开始播放时触发  
eventTester(“pause”);       //pause() 触发  
eventTester(“loadedmetadata”);  // 成功获取资源长度  
eventTester(“loadeddata”);  //  
eventTester(“waiting”);     // 等待数据,并非错误  
eventTester(“playing”);     // 开始回放  
eventTester(“canplay”);     // 可以播放,但中途可能因为加载而暂停  
eventTester(“canplaythrough”); // 可以播放,歌曲全部加载完毕  
eventTester(“seeking”);     // 寻找中  
eventTester(“seeked”);      // 寻找完毕  
eventTester(“timeupdate”);  // 播放时间改变  
eventTester(“ended”);       // 播放结束  
eventTester(“ratechange”);  // 播放速率改变  
eventTester(“durationchange”);  // 资源长度改变  
eventTester(“volumechange”);    // 音量改变  

各浏览器目前对 html5 视频格式的支持:

浏览器 影音格式 🌈🌈 🌈🌈 Ogg Theora 🌈🌈 MP4(H.264) 🌈🌈 WebM
Microsoft Internet Explorer9 🌈 ×🌈🌈🌈🌈 🌈🌈 √🌈🌈 🌈🌈🌈 ×
Mozilla Firefox5+ 🌈🌈 🌈🌈 √ 🌈🌈 🌈🌈 🌈🌈 × 🌈🌈 🌈🌈 🌈√
Google Chrome13+ 🌈🌈 🌈√🌈🌈 🌈🌈 🌈🌈 √🌈🌈 🌈🌈 🌈🌈 √
Apple Safari5+ 🌈🌈 🌈🌈 × 🌈🌈 🌈🌈 🌈🌈 √ 🌈🌈 🌈🌈 🌈🌈 ×
Opera11+ 🌈🌈 🌈🌈 🌈 √ 🌈🌈 🌈🌈 🌈🌈 ×🌈🌈 🌈🌈 🌈🌈 √

原文地址: HTML5 Audio/Video 标签、属性、方法、事件汇总

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-07发表,共计5097字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)