HTML5视频播放标签video和音频播放标签audio标签的正确用法 程序员文章站 2022-12-22 18:10:40 如何嵌入视频和音频 在网页里嵌入html5音频播放器和视频播放器的方法非常简单: 如何嵌入视频和音频 在网页里嵌入html5音频播放器和视频播放器的方法非常简单: <video src="//www.jb51.net/~j/theora_testsuite/320x240.ogg" controls autoplay loop> your browser does not support the <code>video</code> element. </video> 上面这个例子显示了如何播放一个视频文件,并露出视频播放控制按钮。 下面这个例子是在html网页里嵌入音频 audio 的方法: <audio controls autoplay loop src="/test/audio.ogg"> <p>your browser does not support the <code>audio</code> element.</p> </audio> 这里的 src 属性里可以填入一个音频/视频的url,也可以是一个本地的文件。 <audio src="audio.ogg" controls autoplay loop> <p>your browser does not support the <code>audio</code> element </p> </audio> 下面是<audio> 和 <video> 两个标记上控制属性的含义: controls : 显示标准的 html5 视频/音频播放器控制条、控制按钮。 autoplay : 让文件自动播放。 loop : 让文件循环播放。 <audio src="audio.mp3" preload="auto" controls></audio> 这里的 preload 属性是用来缓存大体积文件的。它有三个可选值: "none" 不缓存 "auto" 缓存 "metadata" 只缓存文件元信息 为了能够兼容各种浏览器对不同媒体类型的支持,我们可以用多个 <source> 元素来提供多个不同的媒体类型。例如: <video controls> <source src="foo.ogg" type="video/ogg"> <source src="foo.mp4" type="video/mp4"> your browser does not support the <code>video</code> element. </video> 支持ogg格式视频流的浏览器可以播放 ogg 文件。如果不支持,可以播放 mpeg-4 文件。查看各种浏览器对各种媒体类型的支持情况,请查看这里。 我们还可以指定播放使用的解码器(codecs); 这样就可以更精确的让浏览器如何播放提供的视频: <video controls> <source src="foo.ogg" type="video/ogg; codecs=dirac, speex"> your browser does not support the <code>video</code> element. </video> 上面,我们指定了这个视频需要使用 dirac 和 speex 解码器。如果浏览器支持 ogg 格式,但没有指定的解码器,那么,视频将不会被加载。 如果没有提供 type 属性,则浏览器会向服务器询问媒体类型,看看是否支持;如果不支持,浏览器将会去检查下一个 source 属性。 用javascript控制视频/音频播放 一旦视频文件正确的嵌入到了html网页里,我们就可以使用javascript里控制它的部分,获取它的播放信息。比如,用javascript启动视频播放: var v = document.getelementsbytagname("video")[0]; v.play(); 用javascript可控制html5视频播放器实现播放、暂停、快进,快退、音量等。 <audio id="demo" src="audio.mp3"></audio> <div> <button onclick="document.getelementbyid('demo').play()">播放</button> <button onclick="document.getelementbyid('demo').pause()">暂停</button> <button onclick="document.getelementbyid('demo').volume+=0.1">降低音量</button> <button onclick="document.getelementbyid('demo').volume-=0.1">提高音量</button> </div> 停止下载视频文件 虽然我们可以使用pause()方法里让视频文件停止播放,但浏览器并未停止下载媒体文件,除非它达到了一定的缓存量。 下面是让浏览器如何停止下载视频文件的方法: var mediaelement = document.getelementbyid("mymediaelementid"); mediaelement.pause(); mediaelement.src=''; //或 mediaelement.removeattribute("src"); 通过删除 src 属性(或者设置为空值),这样就能停止文件的网络下载。 设定播放的时间点定位 我们可以指定视频从某时某分某秒开始播放,这是通过设置 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 )。/p> 举例: 指定视频从10秒开始播放,到20秒处结束。 指定视频从头开始播放到 10.5 秒处。 指定视频播放2小时。 指定视频从第60秒开始播放,播放到结束。 设置视频封面(poster参数) 当视频不是自动播放时,在有些浏览器里,视频在未播放前的缺省界面是空白,这样很没有意义,我们可以给视频设定一个封面,用视频里的某个比较具有代表意义的画面截图作为视频的封面,设定视频封面的参数是 poster: <video poster='cover.jpg' src="//www.jb51.net/~j/theora_testsuite/320x240.ogg" controls autoplay loop> your browser does not support the <code>video</code> element. </video> 当视频加载遇到错误时的补救方法 有时候视频资源会失效,或加载失败,或者浏览器不能解码当前视频格式,当遇到这种情况,我们应该给与补救措施,替换当前视频资源地址,或用其它措施补救,比如将video对象替换成图片。我们可以使用javascript对视频加载中的“error”事件进行监听,比如对于下面的视频资源: <video controls> <source src="dynamicsearch.mp4" type="video/mp4"></source> <a href="dynamicsearch.mp4" rel="external nofollow" > <img data-original="dynamicsearch.jpg" alt="dynamic app search in firefox os"> </a> <p>click image to play a video demo of dynamic app search</p> </video> 我们使用下面的js代码进行补救: var v = document.queryselector('video'), sources = v.queryselectorall('source'), lastsource = sources[sources.length-1]; lastsource.addeventlistener('error', function(ev) { var d = document.createelement('div'); d.innerhtml = v.innerhtml; v.parentnode.replacechild(d, v); }, false); 相关标签: HTML5 video audio 上一篇: Ubuntu 16.04中Laravel5.4升级到5.6的步骤 下一篇: python使用suds调用webservice接口的方法 推荐阅读 HTML5视频播放标签video和音频播放标签audio标签的正确用法 录制的视频在html5网页中用video标签无法播放的问题如何解决? Springboot项目使用html5的video标签完成视频播放功能 PHP从服务器请求完视频数据,如何显示?HTML5的video标签播放不了. 怎么正确使用HTML5视频播放标签video和音频播放标签audio标签 录制的视频在html5网页中用video标签无法播放的问题如何解决? PHP从服务器请求完视频数据,如何显示?HTML5的video标签播放不了. HTML5<video>标签不能播放视频,<audio>标签不能播放音频的解决方法 解决在HTML5中的video标签无法播放视频的方法 解决在HTML5中的video标签无法播放视频的方法