整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Html5 基于audio控件的瀏覽器和音頻格式兼容性測試

          個瀏覽器的audio控件和音頻格式的兼容性各有不同。我發現網上的兼容性測試結果和實際運行的有些出入,應該是瀏覽器更新升級后支持了某些格式。讓我們來測試一下各個瀏覽器的兼容性吧。

          結果

          兼容性測試結果

          分析

          現在主流瀏覽器(Safari除外)都支持主流的音頻格式,為了照顧Safari,有損音樂使用MP3格式,無損音樂使用WAV格式。

          各平臺測試截圖

          Chrome

          Firefox

          IE11

          Edge

          Safari

          Opera

          篇文章主要介紹了HTML5實現音頻和視頻嵌入的方法的相關資料,原生的支持音頻和視頻,為HTML5注入了巨大的發展潛力,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

          簡介

          HTML5未出來之前,在線的音頻和視頻都是借助Flash或者第三方工具實現的,現在HTML5也支持了這方面的功能。在一個支持HTML5的瀏覽器中,不需要安裝任何插件就能播放音頻和視頻。原生的支持音頻和視頻,為HTML5注入了巨大的發展潛力。

          html實現音頻嵌入(傳統方式):這種方式雖然可以實現,但是要瀏覽器支持Flash而且并不能實現控制,所以要實現起來很麻煩。

          <object height="200" width="200" data="2_1.swf" >

          </object>

          <embed src="2_1.mp4" type="">

          那么也就是說HTML5存在一個很大的問題就是兼容性。音頻

          HTML5支持的音頻格式:



          視頻

          視頻格式:



          由上可知,HTML5貌似支持的格式有點少哈,所以當你發現用HTML5放置音頻和視頻不顯示時,應該就是格式不支持的問題。注: MP4有3種編碼,mpg4(xdiv),,mpg4(xvid),avc(h264), 只有h264才是公認的MP4標準編碼(在這也是被坑了,其他格式的只有聲音沒有圖像。)遇到這種問題,就用視頻格式轉換器,轉換一下格式就OK啦。

          音頻實現起來很簡單:這里工具條使用了瀏覽器默認的工具條。

          ?

          1

          2

          3

          <audio src="htmls/1.mp3" controls="controls" loop="loop" preload="auto" >

          你的瀏覽器不支持video元素

          </audio>



          視頻雖然也可以使用瀏覽器默認的,但無法實現私人訂制,所以從學技術的角度講,還是要學習一下自己做工具實現功能(audio也可參照此方法)。

          audioVideo.html

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="UTF-8">

          <title>網頁放置視頻</title>

          <style type="text/css">

          </style>

          <script type="text/javascript" src="js/ControlBar.js"></script>

          </head>

          <body>

          <audio src="htmls/1.mp3" controls="controls" loop="loop" preload="auto" >

          你的瀏覽器不支持video元素

          </audio>

          <video id="myPlayer" width="600" height="400" src="htmls/2_1.mp4" controls="controls" loop="loop" poster="3.jpg">

          你的瀏覽器不支持audio元素

          <!-- MP4有3種編碼,mpg4(xdiv),,mpg4(xvid),avc(h264),

          只有h264才是公認的MP4標準編碼 -->

          </video>

          <div id="progress"></div>

          <!-- 音量控制 -->

          <input id="volume" type="range" min="0" max="1" step="0.1" onchange="Volume(this)">

          <!-- 速率和時間進度的信息 -->

          <span id="rate">1</span>fps <span id="info"></span>

          <button onclick="Play(this)" id="btn1">播放</button>

          <button onclick="Fast()">快進</button>

          <button onclick="Slow()">慢進</button>

          <button onclick="Prev()">后退</button>

          <button onclick="Next()">前進</button>

          <button onclick="Muted(this)">靜音</button>

          </body>

          </html>

          顯示(html)與功能實現(js)分離,由外部導入

          ControlBar.js

          //使用腳本檢測瀏覽器的標簽支持情況

          var support = !!document.createElement("audio").canPlayType;

          if (!support) {

          alert("你的瀏覽器不支持本視頻播放");

          }

          // 定義全局的視頻對象

          var e1 = null;

          window.addEventListener("load", function() {

          e1 = document.getElementById("myPlayer");

          });

          /*前進:一分鐘 */

          function Next() {

          e1.currentTime+=10; //設置屬性currentTime,快進10s

          }

          /*后退:一分鐘 */

          function Prev() {

          e1.currentTime-=10; //設置屬性currentTime,后退10s

          }

          /*播放/暫停*/

          function Play(e) {

          if(e1.paused){

          e1.play();

          document.getElementById("btn1").innerHTML="暫停"

          }else{

          e1.pause();

          document.getElementById("btn1").innerHTML="播放"

          }

          }

          /*慢進:小于等于1時,每次都只減慢0.2的速率;大于1時,每次減1 */

          function Slow(){

          if(e1.playbackRate<=1){

          e1.playbackRate-=0.2;

          }else{

          e1.playbackRate-=1;

          }

          document.getElementById("rate").innerHTML=fps2fps(e1.playbackRate);

          }

          /*慢進:小于等于1時,每次都只減慢0.2的速率;大于1時,每次減1 */

          function Fast(){

          if(e1.playbackRate<1){

          e1.playbackRate+=0.2;

          }else{

          e1.playbackRate+=1;

          }

          document.getElementById("rate").innerHTML=fps2fps(e1.playbackRate);

          }

          function fps2fps(fps){

          if(fps<1){

          return fps.toFixed(1);

          }else{

          return fps;

          }

          }

          /*靜音*/

          function Muted(e){

          if(e1.muted){

          e1.muted=false;

          e.innerHRML="X";

          document.getElementById("volume").value=e1.volume;

          }else{

          e1.muted=true;

          e.innerHRML="x";

          document.getElementById("volume").value=0;

          }

          }

          /*調整音量*/

          function Volume(e){

          if(e1.muted==true){

          e1.muted=false;

          }

          e1.volume=e.value;

          }

          /* 進度信息:控制進度條,并顯示進度時間*/

          function Progress(){

          var p1=document.getElementById("progress");

          p1.style.width=(e1.currentTime/e1.duration)*720+"px";

          document.getElementById("info").innerHTML=s2time(e1.currentTime)+"/"+s2time(e1.duration);

          }

          function s2time(s){

          var m=parseFloat(s/60).toFixed(0);

          s=parseFloat(s%60).toFixed(0);

          return (m<10? "0"+m:m)+":"+(s<10?"0"+s:s);

          }

          /* 網頁加載完畢后,把進度處理函數添加至視頻對象的timeupdate事件中*/

          window.addEventListener("load",function(){

          e1.addEventListener("timeupdate",Progress);

          });

          /*給window.onload事件添加進度處理函數*/

          window.addEventListener("load",Progress);

          實現的功能:播放,暫停,快進,慢進,前進,后退,音量控制,進度條和時間顯示。由此可見通過Audio或Video的屬性和方法可以實現更復雜的功能。

          HTML5 標準中, 我們有了新的 <audio> 和 <video> 標簽, 分別可以引入視頻和音頻文件的標簽,那么這些標簽又可以支持哪些文件格式呢 ?

          格式支持

          視頻文件格式

          • MP4:MPEG-4 Part 14,支持H.264編碼。幾乎所有的瀏覽器都支持該格式。
          • WebM:谷歌開發的格式,使用VP8或VP9編碼,可以在大多數現代瀏覽器中播放
          • Ogg:開放媒體格式,使用Vorbis編碼,可以在大多數現代瀏覽器中播放。

          音頻文件格式

          • MP3:MPEG-1或MPEG-2 Audio Layer III,可以在幾乎所有的瀏覽器中播放。
          • AAC:Advanced Audio Coding,可以在大多數現代瀏覽器中播放。
          • Ogg:開放媒體格式,使用Vorbis編碼,可以在大多數現代瀏覽器中播放。
          • WAV:Waveform Audio File Format,可以在幾乎所有的瀏覽器中播放,但文件較大,不適合在網絡上播放。

          如何處理兼容

          基礎使用

          只要使用 video 標簽的 src 屬性引入對應的文件地址即可

          兼容使用

          當我不確定當前瀏覽器支持哪一個格式的文件的時候,可以使用兼容模式。不在 video 標簽上添加 src 屬性,而是直接在 video 標簽對內書寫 source 標簽來引入多種格式的文件。

          <video controls>
          <source src="movie.mp4" type="video/mp4">
          <source src="movie.webm" type="video/webm">
          <source src="movie.ogg" type="video/ogg">

          您的瀏覽器不支持播放當前視頻, 請更換瀏覽器再試

          優先嘗試第一個 source 標簽的文件引入, 如果瀏覽器支持, 那么后續不在引入,如果瀏覽器不支持, 那么開始嘗試第二個 source 標簽的文件,以此類推, 如果所有 source 標簽的內容都不支持,那么就顯示最后的那一行文本。這樣我們的兼容問題就解決了,audio 標簽也是同樣一個道理。

          視頻兼容性

          音頻兼容性

          小伙伴們如果想要學習和提升互聯網IT相關的技術,不妨可以評論留言告訴我們。有由我們非常優秀的300位講師結合企業需求參與研發,開發3000G的課程資源,涵蓋18個IT行業,包括前端、Java、Python、云計算、軟件測試、大數據、游戲開發、網絡安全、視頻剪輯等教程都可以免費學。


          主站蜘蛛池模板: 日本不卡一区二区视频a| 成人免费视频一区| 麻豆一区二区三区精品视频 | 国产在线观看一区二区三区| 国产伦精品一区二区三区在线观看| 色综合视频一区中文字幕| 国产在线一区二区三区av| 精品视频一区二区三区| 日韩视频一区二区三区| 亚洲精品日韩一区二区小说| 夜色阁亚洲一区二区三区| 国产午夜福利精品一区二区三区| 亚洲av无码一区二区三区天堂古代 | 国产精品无码亚洲一区二区三区| 一区二区三区杨幂在线观看| 亚洲国产精品第一区二区| 韩国精品一区视频在线播放| 国产成人精品无码一区二区三区| 一本一道波多野结衣AV一区| 一区二区三区视频观看| 亚洲国产精品一区二区久| 波多野结衣在线观看一区| 色欲精品国产一区二区三区AV| 精品国产免费观看一区| 亚洲AV无码一区二区三区DV| 精品国产一区二区三区在线 | 色天使亚洲综合一区二区| 中文字幕在线观看一区二区三区| AV鲁丝一区鲁丝二区鲁丝三区 | 看电影来5566一区.二区| 日韩精品一区二区三区中文版 | 亚洲丶国产丶欧美一区二区三区| av无码人妻一区二区三区牛牛 | 麻豆一区二区三区蜜桃免费| 精品人妻码一区二区三区| 嫩B人妻精品一区二区三区| 日本精品视频一区二区三区| 91在线视频一区| 无码人妻AⅤ一区二区三区| 久久精品无码一区二区日韩AV| 在线观看中文字幕一区|