美文网首页webWeb前端之路让前端飞
HTML5 音频<audio>和视频<vide

HTML5 音频<audio>和视频<vide

作者: 7天苹果 | 来源:发表于2017-08-22 10:37 被阅读694次

    HTML5 特性,包括原生音频和视频支持而无需 Flash。

    HTML5 <audio> 和 <video> 标签让我们给站点添加媒体变得简单。我们只需要设置 src 属性来识别媒体资源,包含 controls 属性让用户可以播放和暂停媒体。

    <video>

    嵌入视频

    <video src="foo.mp4"  width="300" height="200" controls>
        Your browser does not support the <video> element.   
    </video>
    

    目前的 HTML5 规范草案还没有指定浏览器应该在 video 标签中支持哪种视频格式。但是最常用的视频格式是:

    • Ogg:带有 Thedora 视频编码器和 Vorbis 音频编码器的 Ogg 文件。
    • mpeg4:带有 H.264 视频编码器和 AAC 音频编码器的 MPEG4 文件。

    我们可以使用带有媒体类型和其他属性的 <source> 标签指定媒体文件。video 元素允许使用多个 source 元素,浏览器会使用第一个认可的格式:

    <!DOCTYPE HTML>
    <html>
    <body>
       <video  width="300" height="200" controls autoplay>
           <source src="/html5/foo.ogg" type="video/ogg" />
           <source src="/html5/foo.mp4" type="video/mp4" />
           Your browser does not support the <video> element.
       </video>
    </body>
    </html>
    

    video属性规范

    HTML5 video 标签可以使用多个属性控制外观和感觉以及各种控制功能:

    属性 描述
    autoplay 如果指定这个布尔值属性,只要没有停止加载数据,视频就会立刻开始自动播放。
    autobuffer 如果指定这个布尔值属性,即使没有设置自动播放,视频也会自动开始缓冲。
    controls 如果指定这个属性,就允许用户控制视频播放,包括音量控制,快进,暂停或者恢复播放。
    height 这个属性以 CSS 像素的形式指定视频显示区域的高度。
    loop 如果指定这个布尔值属性,表示允许播放结束后自动回放。
    preload preload 属性是用来缓存大体积文件的。它有三个可选值:"none" 不缓存,"auto" 缓存,"metadata" 只缓存文件元信息
    poster 这是一个图像 URL,显示到用户播放或快进。
    src 要嵌入的视频 URL。可选,可以在 video 块中使用 <source> 元素替代来指定要嵌入的视频。
    width 这个属性以 CSS 像素的形式指定视频显示区域的宽度。

    <audio>

    嵌入音频

    HTML5 支持的 <audio> 标签用于在如下所示的 HTML 或 XHTML 文档中嵌入语音内容。

    <audio src="foo.wav" controls autoplay>
       Your browser does not support the <audio> element.
    </audio>
    

    当前的 HTML 草案规范还没有指定浏览器应该在 audio 标签中支持哪种音频格式。但是最常用的音频格式是 oggmp3wav
    我们可以使用带媒体类型以及其他属性的的 <source> 标签指定媒体。Audio 元素允许使用多个 source 元素,并且浏览器会使用第一个认可的格式:

    <!DOCTYPE HTML>
    <html>
    <body>
         <audio controls autoplay> 
            <source src="/html5/audio.ogg" type="audio/ogg" /> 
            <source src="/html5/audio.wav" type="audio/wav" /> 
                Your browser does not support the <audio> element.
         </audio>
    </body>
    </html>
    

    Audio 属性规范

    HTML5 audio 标签可以使用多个属性来控制外观,感受以及各种控制功能:

    属性 描述
    autoplay 如果指定这个布尔值属性,只要没停止加载数据,音频就会立刻自动开始播放。
    autobuffer 如果指定这个布尔值属性,即使没有设置自动播放,音频也会自动开始缓冲。
    controls 如果指定这个属性,表示允许用户控制音频播放,包括音量控制,快进以及暂停/恢复播放。
    loop 如果指定这个布尔值属性,表示允许音频播放结束后自动回放。
    preload 这个属性指定加载页面时加载音频并准备就绪。如果指定自动播放则忽略。
    src 要嵌入的音频 URL。可选,可以在音频块里

    处理媒体事件

    HTML5 audio 和 video 标签可以用多个属性利用 JavaScript 控制各种控制功能:

    事件 描述
    abort 播放中止时生成这个事件。
    canplay 足够的数据可用并且媒体可以播放时生成这个事件。
    ended 播放完成时生成这个事件。
    error 发生错误时生成这个事件。
    loadeddata 媒体第一帧载入完成时生成这个事件。
    loadstart 开始加载媒体时生成这个事件。
    pause 播放暂停时生成这个事件。
    play 播放开始或者恢复时生成这个事件。
    progress 定期通知媒体下载进度时生成这个事件。
    ratechange 播放速度改变时生成这个事件。
    seeked 快进操作完成时生成这个事件。
    seeking 快进操作开始时生成这个事件。
    suspend 媒体加载被暂停时生成这个事件。
    volumechange 音频音量变化时生成这个事件。
    waiting 请求操作(比如播放)被延迟,等待另一个操作完成(比如快进)时生成这个事件。

    设定播放的时间点定位

    我们可以指定视频从某时某分某秒开始播放,这是通过设置 currentTime 属性来实现。

    我们可以通过 seekable 属性来获得视频有效的播放时间范围。它会返回一个 TimeRanges 对象,能够告诉你有效的开始时间和结束时间。

    var mediaElement = document.getElementById('mediaElementID');
    mediaElement.seekable.start(0);  // 返回开始时间 (秒)
    mediaElement.seekable.end(0);    // 返回结束时间 (秒)
    mediaElement.currentTime = 122; // 定位到第 122 秒播放
    mediaElement.played.end(0);      // 返回已经播放的时间长度(秒)
    

    设定播放范围

    当在网页里嵌入视频/音频文件时, <audio> 或 <video> 元素允许我们提供一些额外的信息来指定播放哪一时间段。实现的方法是在媒体文件后面跟随(“#”)格式的信息。

    它的具体语法是这样的:

    #t=[开始时间][,结束时间]
    

    时间的表示方法可以使用秒数,也可以提供一个 ”时:分:秒“ 格式的时间(例如 2:05:01 )。

    举例:

    http://www.webhek.com/video.ogg#t=10,20
    指定视频从10秒开始播放,到20秒处结束。
    http://www.webhek.com/video.ogg#t=,10.5
    指定视频从头开始播放到 10.5 秒处。
    http://www.webhek.com/video.ogg#t=,02:00:00
    指定视频播放2小时。
    http://www.webhek.com/video.ogg#t=60
    指定视频从第60秒开始播放,播放到结束。
    

    相关文章

      网友评论

        本文标题:HTML5 音频<audio>和视频<vide

        本文链接:https://www.haomeiwen.com/subject/mtikdxtx.html