整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線(xiàn):

          如何利用HTML5實(shí)現(xiàn)音頻和視頻嵌入的方法

          篇文章主要介紹了HTML5實(shí)現(xiàn)音頻和視頻嵌入的方法的相關(guān)資料,原生的支持音頻和視頻,為HTML5注入了巨大的發(fā)展?jié)摿Γ【幱X(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

          簡(jiǎn)介

          HTML5未出來(lái)之前,在線(xiàn)的音頻和視頻都是借助Flash或者第三方工具實(shí)現(xiàn)的,現(xiàn)在HTML5也支持了這方面的功能。在一個(gè)支持HTML5的瀏覽器中,不需要安裝任何插件就能播放音頻和視頻。原生的支持音頻和視頻,為HTML5注入了巨大的發(fā)展?jié)摿Α?/p>

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

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

          </object>

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

          那么也就是說(shuō)HTML5存在一個(gè)很大的問(wèn)題就是兼容性。音頻

          HTML5支持的音頻格式:



          視頻

          視頻格式:



          由上可知,HTML5貌似支持的格式有點(diǎn)少哈,所以當(dāng)你發(fā)現(xiàn)用HTML5放置音頻和視頻不顯示時(shí),應(yīng)該就是格式不支持的問(wèn)題。注: MP4有3種編碼,mpg4(xdiv),,mpg4(xvid),avc(h264), 只有h264才是公認(rèn)的MP4標(biāo)準(zhǔn)編碼(在這也是被坑了,其他格式的只有聲音沒(méi)有圖像。)遇到這種問(wèn)題,就用視頻格式轉(zhuǎn)換器,轉(zhuǎn)換一下格式就OK啦。

          音頻實(shí)現(xiàn)起來(lái)很簡(jiǎn)單:這里工具條使用了瀏覽器默認(rèn)的工具條。

          ?

          1

          2

          3

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

          你的瀏覽器不支持video元素

          </audio>



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

          audioVideo.html

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="UTF-8">

          <title>網(wǎng)頁(yè)放置視頻</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才是公認(rèn)的MP4標(biāo)準(zhǔn)編碼 -->

          </video>

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

          <!-- 音量控制 -->

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

          <!-- 速率和時(shí)間進(jìn)度的信息 -->

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

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

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

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

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

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

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

          </body>

          </html>

          顯示(html)與功能實(shí)現(xiàn)(js)分離,由外部導(dǎo)入

          ControlBar.js

          //使用腳本檢測(cè)瀏覽器的標(biāo)簽支持情況

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

          if (!support) {

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

          }

          // 定義全局的視頻對(duì)象

          var e1 = null;

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

          e1 = document.getElementById("myPlayer");

          });

          /*前進(jìn):一分鐘 */

          function Next() {

          e1.currentTime+=10; //設(shè)置屬性currentTime,快進(jìn)10s

          }

          /*后退:一分鐘 */

          function Prev() {

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

          }

          /*播放/暫停*/

          function Play(e) {

          if(e1.paused){

          e1.play();

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

          }else{

          e1.pause();

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

          }

          }

          /*慢進(jìn):小于等于1時(shí),每次都只減慢0.2的速率;大于1時(shí),每次減1 */

          function Slow(){

          if(e1.playbackRate<=1){

          e1.playbackRate-=0.2;

          }else{

          e1.playbackRate-=1;

          }

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

          }

          /*慢進(jìn):小于等于1時(shí),每次都只減慢0.2的速率;大于1時(shí),每次減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;

          }

          }

          /*調(diào)整音量*/

          function Volume(e){

          if(e1.muted==true){

          e1.muted=false;

          }

          e1.volume=e.value;

          }

          /* 進(jìn)度信息:控制進(jìn)度條,并顯示進(jìn)度時(shí)間*/

          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);

          }

          /* 網(wǎng)頁(yè)加載完畢后,把進(jìn)度處理函數(shù)添加至視頻對(duì)象的timeupdate事件中*/

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

          e1.addEventListener("timeupdate",Progress);

          });

          /*給window.onload事件添加進(jìn)度處理函數(shù)*/

          window.addEventListener("load",Progress);

          實(shí)現(xiàn)的功能:播放,暫停,快進(jìn),慢進(jìn),前進(jìn),后退,音量控制,進(jìn)度條和時(shí)間顯示。由此可見(jiàn)通過(guò)Audio或Video的屬性和方法可以實(shí)現(xiàn)更復(fù)雜的功能。

          天小編將分享前端開(kāi)發(fā)中必學(xué)的知識(shí)點(diǎn),HTML5中關(guān)于音視頻處理

          視頻處理

          基本內(nèi)容:目前國(guó)內(nèi)的視頻網(wǎng)站 - Flash技術(shù),HTML5的視頻處理首先替換Flash技術(shù),支持的視頻格式有:

          1.MP4 - .mp4 目前比較主流的視頻格式。

          2.OGG - .ogv 手機(jī)端的視頻格式。

          3.WebM - 目前唯一一個(gè)支持超高清視頻格式,該視頻格式出自Goggle公司。

          問(wèn): 如何處理視頻?

          答:<video>元素 - 引入單個(gè)格式視頻文件,它由自己的屬性組成。 src屬性 - 指定視頻文件的地址, width屬性 - 設(shè)置視頻寬度, height屬性 - 設(shè)置視頻高度。語(yǔ)法規(guī)范:<video src="視頻文件路徑" width=“100px”>

          !!需要注意的是:視頻的寬高比不會(huì)改變, 在video元素內(nèi)定義不支持的提示內(nèi)容。

          如果要想在<video>元素引入多個(gè)格式視頻文件,那么就使用<source/>,使用這種方式能夠?qū)崿F(xiàn)各個(gè)瀏覽器的兼容性,語(yǔ)法規(guī)范:

          <video>

          <source src="視頻文件路徑1"/>

          <source src="視頻文件路徑2"/>

          <source src="視頻文件路徑3"/>

          </video>

          • <video>元素的屬性

          autoplay屬性 - 自動(dòng)播放

          controls屬性 - 提供控制面板

          loop屬性 - 循環(huán)播放

          poster屬性 - 播放之前顯示一張圖片

          preload屬性 - 預(yù)加載(視頻)

          none - 不加載

          auto - (默認(rèn)值)自動(dòng)(盡快加載完畢)

          metadata - 只加載除視頻之外的信息(寬和高)

          • video的高級(jí)用法 方法

          play() - 播放視頻

          pause() - 暫停視頻

          load() - 加載視頻

          canPlayType() - 判斷是否支持該格式

          • 事件

          play - 播放視頻時(shí)觸發(fā)

          pause - 暫停視頻時(shí)觸發(fā)

          ended - 結(jié)束播放時(shí)觸發(fā)

          error - 播放錯(cuò)誤時(shí)觸發(fā)

          canplay - 可播放時(shí)觸發(fā)(不考慮整體)

          canplaythrough - 整體播放順利時(shí)觸發(fā)

          progress - 下載進(jìn)度

          • 屬性

          paused - 判斷視頻當(dāng)前是否暫停,如果暫停狀態(tài),返回true

          ended - 判斷視頻當(dāng)前是否結(jié)束播放,如果結(jié)束播放,返回true

          duration - 當(dāng)前視頻的總時(shí)長(zhǎng)

          currentTime - 獲取或設(shè)置當(dāng)前視頻播放的位置

          音頻處理

          基本內(nèi)容:目前HTML頁(yè)面實(shí)現(xiàn)音頻處理,將Windows Media Player播放器,內(nèi)置頁(yè)面中,使用Flash技術(shù)實(shí)現(xiàn)音頻處理,HTML5實(shí)現(xiàn)音頻處理支持的音頻格式有:

          1.mp3 - 感謝百度(MP3)

          2.ogg

          3.wav

          問(wèn): 如何使用音頻?

          答: audio元素 - 引入一種音頻格式。

          • <audio>元素的屬性

          src屬性 - 引入音頻文件,作用 - 實(shí)現(xiàn)頁(yè)面背景音樂(lè)播放

          audio元素 - 引入多種音頻格式

          source元素

          autoplay - 自動(dòng)播放

          controls - 提供控制面板

          loop - 循環(huán)播放

          preload - 預(yù)加載

          audio的高級(jí)用法

          • 事件

          play - 播放音頻時(shí)觸發(fā)

          • 方法

          play() - 播放音頻

          pause() - 暫停音頻

          • 屬性

          paused - true,表示暫停狀態(tài)

          !! 需要特別注意,IE 8及之前的版本都不支持

          emo:

          ```html

          <!DOCTYPE html>
          <html>
          <head>
          <title>HTML5 Audio(音頻):在網(wǎng)頁(yè)中播放音頻的簡(jiǎn)單方法</title>
          </head>
          <body>
          <h1>HTML5 Audio(音頻):在網(wǎng)頁(yè)中播放音頻的簡(jiǎn)單方法</h1>
          <p>下面是一個(gè)使用HTML5 Audio標(biāo)簽在網(wǎng)頁(yè)中播放音頻的示例:</p>
          <audio controls>
          <source src="audio.mp3" type="audio/mpeg">
          Your browser does not support the audio element.
          </audio>
          <p>上述代碼將呈現(xiàn)出一個(gè)帶有控制條的音頻播放器,并在其中播放指定的音頻文件。音頻文件可以是MP3格式(<code>.mp3</code>)。</p>
          <p>在上述代碼中,我們使用了HTML5的Audio標(biāo)簽來(lái)嵌入音頻。通過(guò)設(shè)置<code>controls</code>屬性,我們可以啟用控制條,讓用戶(hù)可以控制音頻的播放和暫停。</p>
          <p>在<code>audio</code>標(biāo)簽內(nèi)部,我們使用了<code>source</code>標(biāo)簽來(lái)指定音頻文件的URL和類(lèi)型。在示例中,我們提供了一個(gè)MP3格式的音頻文件。</p>
          <p>如果用戶(hù)的瀏覽器不支持HTML5 Audio標(biāo)簽或指定的音頻文件格式,則會(huì)顯示<code>Your browser does not support the audio element.</code>的提示信息。</p>
          <p>通過(guò)使用HTML5 Audio功能,我們可以在網(wǎng)頁(yè)中方便地播放音頻,為用戶(hù)提供更加豐富和多樣化的聲音效果。音頻可以應(yīng)用于各種場(chǎng)景,如音樂(lè)、語(yǔ)音提示、背景音樂(lè)等。</p>
          </body>
          </html>

          ```

          以上是一篇使用HTML5 Audio標(biāo)簽在網(wǎng)頁(yè)中播放音頻的文章,其中包含了示例代碼和一些相關(guān)說(shuō)明。通過(guò)使用HTML5的Audio標(biāo)簽,我們可以在網(wǎng)頁(yè)中方便地嵌入和播放音頻。在示例中,我們使用了MP3格式的音頻文件。通過(guò)設(shè)置Audio標(biāo)簽的屬性,如控制條,我們可以定制音頻播放器的外觀和功能。通過(guò)使用HTML5 Audio功能,我們可以為用戶(hù)提供更加豐富和多樣化的聲音效果,如音樂(lè)、語(yǔ)音提示、背景音樂(lè)等。請(qǐng)注意,在使用音頻功能時(shí),需要確保音頻文件的合法性和版權(quán)問(wèn)題。

          我是永不低頭的熊,喜歡美食、健身,當(dāng)然也喜歡寫(xiě)代碼,每天不定時(shí)更新各類(lèi)編程相關(guān)的文章,希望你在碼農(nóng)這條路上不再孤單!


          主站蜘蛛池模板: 亚洲一区二区三区成人网站| 国产av天堂一区二区三区| 亚洲av色香蕉一区二区三区| 精品国产aⅴ无码一区二区| 日本一区二区免费看| 久久精品无码一区二区WWW| 国产日产久久高清欧美一区| 波多野结衣电影区一区二区三区 | 国产精品揄拍一区二区| 美女视频一区三区网站在线观看| 国产精品99精品一区二区三区| 精品人妻一区二区三区四区在线| 中文字幕一区二区三区四区| 无码人妻精品一区二区三18禁 | 国产主播一区二区三区在线观看| 国产精品视频一区二区三区不卡| 精品乱人伦一区二区三区| 亚洲综合一区二区三区四区五区| 无码欧精品亚洲日韩一区夜夜嗨 | 成人中文字幕一区二区三区| 日韩色视频一区二区三区亚洲| 久久久不卡国产精品一区二区| 日韩人妻精品一区二区三区视频| 国产萌白酱在线一区二区| 国偷自产av一区二区三区| 亚洲欧美一区二区三区日产| 国产一区麻豆剧传媒果冻精品| 国产乱码一区二区三区四| 国产午夜三级一区二区三| 日本国产一区二区三区在线观看 | 麻豆亚洲av熟女国产一区二| 一区二区三区波多野结衣 | 亚洲视频免费一区| 国产一区二区三区高清视频| 中文字幕日韩精品一区二区三区| 中文字幕无码免费久久9一区9| 精品欧美一区二区在线观看| 国产亚洲一区二区在线观看| 国产日韩精品一区二区三区| 亚洲一区二区三区在线| 亚洲老妈激情一区二区三区|