阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

    教程列表

    数据库
    抓包专区
    测试专区

    HTML 音频/视频 DOM 参考手册

    HTML 音频/视频 DOM 参考手册

    HTML5 DOM 为 <audio><video> 元素提供了方法、属性和事件。

    这些方法、属性和事件允许您使用 JavaScript 来操作 <audio><video> 元素。

    <audio><video>是浏览器内置的播放音频或视频的元素;视频和音频编解码器用来处理视频和音频,不同的编解码器提供不同级别的压缩率和分辨率;

    一个容器封装格式(多媒体容器格式)用来存储和传输编码后的视频和音频(如果视频带有音轨则同时;编解码器和多媒体容器格式有非常多的组合;尽管只有很少部分和WEB相关;

    由于专利的问题,不同的浏览器对HTML5的video和audio有不同的规范和实现;WEB上的媒体格式领域受到在包括美国、欧盟在内的许多国家的专利法的保护和制约;

    本文将讨论了不同的编解码器和封装格式在WEB上的各种组合,包括在桌面设备和其他设备上的浏览器的支持情况。

    想要在HTML5中播放视频,并且主流浏览器的最新版本中支持良好;可以使用WebM 和 MPEG H.264 AAC 编码格式;像下面一样使用<source>元素

    <video controls>
      <source src="somevideo.webm" type="video/webm">
      <source src="somevideo.mp4" type="video/mp4">
      I'm sorry; your browser doesn't support HTML5 video in WebM with VP8/VP9 or MP4 with H.264.
      <!-- You can embed a Flash player here, to play your mp4 video in older browsers -->
    </video>
    

    Ogg Theora Vorbis

    Ogg容器格式使用Theora视频编解码器和 Vorbis音频编解码器。在的桌面和移动端的Gecko(Firefox),Chrome和Opera;Safari(非IOS)可以通过添加扩展支持;但是不支持IE

    WebM在可选的情况下是优选项;因为它能提供更高的压缩比,并且被更多的浏览器所支持;而Ogg容器格式主要用于支持低版本的浏览器(比如: Firefox 3.5/3.6就不支持WebM,但是支持Ogg)

    Ogg的授权情况和WebM类似

    Gecko提供下面3种Ogg文件格式的MIME type:

    • audio/ogg
      • 一个只包含音频的Ogg文件
    • video/ogg
      • 一个包含视频或音频的Ogg文件
    • application/ogg
      • 一个不指定内容的Ogg文件,当你不知道内容的时候可以选择

    Ogg Opus

    Ogg容器可以通过使用Opus codec包含音频编解码器;

    用来支持Gecko 15.0 (Firefox 15.0 / Thunderbird 15.0 / SeaMonkey 2.12) 或更新的版本

    Ogg FLAC

    Ogg容器可以通过使用FLAC codec包含音频编解码器;

    用来支持Gecko 51.0 (Firefox 51.0 / Thunderbird 51.0 / SeaMonkey 2.48) 或更新的版本, 但只适用于桌面浏览器

    MP4 FLAC

    从Firefox 51开始,你就可以使用FLAC编解码器播放MP4了,不管你有没有安装 MediaSource Extensions和DRM 扩展支持。

    MP3

    MP3 audio 编码对应浏览器<audio>的支持。

    其中Firefox/Firefox for Android/Firefox OS需要操作系统本身提供了MP3的解码器;而IE,Chrome,Safari则原生支持

    WAVE PCM

    WAVE容器使用PCM音频编解码器;桌面和移动Gecko (Firefox) a、 Safari都支持,WAVE容器中的文件后缀为 “.wav”。

    Gecko提供下面4种WAVE文件格式的MIME type:

    • audio/wave (preferred; does not work in Chrome)
    • audio/wav
    • audio/x-wav
    • audio/x-pn-wav

    FLAC

    FLAC容器格式使用 FLAC 音频编解码器 (FLAC codec);桌面端受到Gecko Firefox 51.0 (Firefox 51.0 / Thunderbird 51.0 / SeaMonkey 2.48)的支持,文件后缀为 “.flac”

    Gecko提供下面4种FLAC文件格式的MIME type:

    • audio/flac (preferred)
    • audio/x-flac

    Media Source Extensions (MSE)

    媒体源扩展(MSE)是一个W3C工作草案,计划扩展HTMLMediaElement以允许JavaScript生成用于重放的媒体流。 允许JavaScript生成流以适应各种应用场景,如自适应流和时移实时流。 MSE支持仅限于MP4和WebM容器,但编解码器支持因底层平台而异。

    例如:可以使用JavaScript实现MPEG-DASH,同时将解码解压缩到MSE。

    时间位移(Time shifting) 功能主要是将即时内容,录制在存储器上,可以暂时离开,一定时间回来后,可以从离开的时间通过内部的重播。

    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 当视频由于需要缓冲下一帧而停止时触发。
    卖前端学习教程

    只需几十元,就能买到培训班的内部教程!开启高薪之路!

    零基础小白阿里P7的教程都有!

    同时长期收购所有培训班的前端教程

    目录
    目录