整合營銷服務商

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

          免費咨詢熱線:

          html多頁面實現背景音樂的連續播放,簡單處理筆記

          在多個HTML頁面之間切換時持續播放背景音樂,可以使用JavaScript和localStorage來實現。這里有一個簡單的實現方案:

          1. 創建一個隱藏的音頻播放器: 在每個HTML頁面的<body>標簽內添加一個隱藏的音頻標簽,并設置自動播放和循環播放屬性。
          1. 使用JavaScript控制音頻狀態: 當頁面加載時,檢查localStorage中是否有音樂正在播放的狀態,如果有,則恢復播放。同時,當頁面離開時,記錄音樂的播放狀態到localStorage。

          下面是一個簡化版的多頁面背景音樂連續播放的Demo示例。這個例子包含兩個HTML文件:index.html 和 page2.html。請確保你有相應的音頻文件(如music.mp3)并放置在與HTML文件相同的目錄下。

          index.html

          <!DOCTYPE html>
          <html lang="en">
              <head>
                  <meta charset="UTF-8" />
                  <title>首頁</title>
                  <style>
                      #backgroundMusic {
                          display: none;
                      }
                  </style>
              </head>
              <body>
                  <h1>首頁</h1>
                  <p>這是首頁,背景音樂會持續播放。</p>
                  <a href="page2.html">前往第二頁</a>
          
                  <audio controls id="backgroundMusic" loop>
                      <source src="https://img.mtsws.cn/LightPicture/2023/08/45f935a39d0189c0.mp3" type="audio/mpeg" />
                      您的瀏覽器不支持 audio 元素。
                  </audio>
          
                  <script>
                      document.addEventListener('DOMContentLoaded', function () {
                          var audio = document.getElementById('backgroundMusic')
                          setupMusic(audio)
                      })
          
                      function setupMusic(audio) {
                          var musicTime = parseFloat(localStorage.getItem('musicTime')) || 0
                          var isPlaying = localStorage.getItem('musicPlaying') === 'true'
          
                          audio.currentTime = musicTime
                          if (isPlaying) {
                              audio.play().catch(function (error) {
                                  console.error('自動播放被阻止:', error)
                              })
                          }
          
                          audio.onplay = function () {
                              localStorage.setItem('musicPlaying', true)
                          }
                          audio.onpause = function () {
                              localStorage.setItem('musicPlaying', false)
                          }
                          audio.ontimeupdate = function () {
                              localStorage.setItem('musicTime', audio.currentTime)
                          }
                      }
                  </script>
              </body>
          </html>
          

          page2.html

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>第二頁</title>
              <style>
                  #backgroundMusic { display: none; }
              </style>
          </head>
          <body>
          
          <h1>第二頁</h1>
          <p>切換到第二頁,背景音樂仍然連續播放。</p>
          <a href="index.html">返回首頁</a>
          
          <audio id="backgroundMusic" src="music.mp3" loop></audio>
          
          <script>
              document.addEventListener('DOMContentLoaded', function() {
                  var audio = document.getElementById('backgroundMusic');
                  setupMusic(audio);
              });
          
              // 與index.html中相同的setupMusic函數,確保音樂播放邏輯一致
              function setupMusic(audio) {/*...函數內容與上文相同...*/}
          </script>
          </body>
          </html>

          在這個示例中,index.html 和 page2.html 都包含了相同的JavaScript邏輯來管理背景音樂的播放狀態和時間。當用戶在頁面間導航時,音樂將會無縫繼續播放,而不是重新開始。請根據實際需要調整音頻文件路徑和其他細節。

          語言

          描述

          結構

          HTML

          網頁元素和內容

          表現

          CSS

          網頁元素頁面樣式

          行為

          JavaScript

          網頁交互

          1 HTML概念

          HTML,超文本標記語言(Hyper Text Markup Language),是一門描述性語言。標記,標簽,元素,叫法不同,意思相同。HTML超文本標記語言主要通過標簽的方式,對網頁頁面的文本、圖片、音頻、視頻等內容進行描述。學習HTML,就是學習各種標簽,來搭建網頁的結構。

          2 HTML結構

          結構:!DOCTYPE

          說明:作用是告訴瀏覽器用哪個文檔規范來解析文檔

          標簽:html

          說明:用于搭建HTML網頁文檔結構和網頁布局


          ?標簽:head

          說明:用于定義HTML網頁文檔的頭部,它是所有頭部元素的容器?


          ?標簽:body

          說明:用來定義HTML網頁文檔的主體區域?


          ?標簽:meta

          說明:用來描述HTML網頁文檔的屬性?


          ?標簽:title

          說明:用來放到HTML網頁文檔的頭部,是搜索引擎首要抓取的目標代碼?


          ?2.1 標簽

          標簽,也叫作標記,是由一對尖括號<>,里面包含單詞組成

          2.1.1 雙標簽

          <html></html>

          2.1.2 單標簽

          <br>

          2.1.3 標簽關系

          嵌套關系

          <html>
              <head>
              </head>
          </html>

          并列關系

          <head>
          </head>
          <body>    
          </body>

          3 注釋

          注釋用來幫助程序員記錄程序設計方法,輔助程序閱讀

          4 head標簽

          4.1 title標簽

          雙標簽,定義網頁的標題

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="utf-8">
              <title>百度一下,你就知道了</title>
          </head>
          <body>
          
          </body>
          </html>

          4.2 meta標簽

          是單標簽,用來描述HTML網頁文檔的屬性

          4.2.1 name屬性

          屬性值

          說明

          keywords

          網頁關鍵字,多個逗號隔開

          description

          網頁描述

          author

          作者

          copyright

          版權信息

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <!-- 網頁關鍵字 -->
              <meta name="keywords" content="html,css,javascript">
              <!-- 網頁描述 -->
              <meta name="description" content="基礎前端知識">
              <!-- 網頁作者 -->
              <meta name="author" content="buddha">
              <!-- 網頁版權信息 -->
              <meta name="copyright" content="版權所有,翻版必究">
          </head>
          <body>
          
          </body>
          </html>

          標簽屬性:

          1、標簽的屬性寫在開始標簽內部

          2、標簽名與屬性之間要有空格隔開

          3、一個標簽可以同時存在多個屬性

          4、屬性之間以空格隔開

          5、屬性沒有先后順序之分

          4.2.2 http-equiv屬性

          屬性值

          說明

          Content-Type

          定義網頁所使用編碼

          refresh

          定義網頁自動刷新跳轉

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <!-- 設置網頁編碼完整寫法 -->
              <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
              <!-- 設置網頁編碼簡寫寫法 -->
              <meta charset="UTF-8">
              <!-- 網頁打開3秒后跳去百度 -->
              <meta http-equiv="refresh" content="3;url=https://www.baidu.com">
          </head>
          <body>
          
          </body>
          </html>

          4.3 style標簽

          是雙標簽,用來定義標簽的css樣式

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <style type="text/css">
                  /* css內聯樣式寫這里 */
              </style>
          </head>
          <body>
          
          </body>
          </html>

          4.4 link標簽

          是單標簽,是用來引入外部css樣式文件

          <link rel="stylesheet" href="css/index.css" type="text/css">

          4.5 script標簽

          是雙標簽,是用來寫JavaScript代碼的地方

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <script>
                  /* 這里寫JavaScript代碼 */
              </script>
          
          </head>
          <body>
          
          </body>
          </html>

          4.6 base標簽

          是單標簽,是用來設置整個網頁的基礎路徑。

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <base href="https://pic.rmb.bdstatic.com">
          
          </head>
          <body>
              <img src="bjh/news/e7fb4c2be6a2e439ff7e3197fa205d8f1336.gif">
          </body>
          </html>

          開發中很少用到,有人使用知道就行

          上面所述標簽是放在head標簽里的,接下來接觸的標簽都是放在body標簽內的

          5 文本標簽

          5.1 標題標簽

          是雙標簽,h是header的縮寫

          <h1>h1標簽:一級標題</h1>
          <h2>h2標簽:二級標題</h2>
          <h3>h3標簽:三級標題</h3>
          <h4>h4標簽:四級標題</h4>
          <h5>h5標簽:五級標題</h5>
          <h6>h6標簽:六級標題</h6>

          特點:

          1、字體加粗

          2、獨占一行

          3、從h1到h6,字體逐漸減小

          4、使用<h>標簽的主要意義是告訴搜索引擎這是一段文字的標題

          5、<h1>在一個頁面最多只能有一個,不要用多個

          5.2 段落標簽

          是雙標簽,p是paragraph的縮寫

          <p>這是一段文字</p>
          <p>這是一段文字</p>
          <p>這是一段文字</p>

          特點:

          1、獨占一行

          2、段落與段落之間,存在間隙

          5.3 換行標簽

          是單標簽,br是break的縮寫

          <p>這是一段<br>文字</p>

          特點:

          1、強制換行

          2、單標簽

          5.4 水平線標簽

          是單標簽,hr是horizon地平線的縮寫

          <p>這是一段文字</p>
          <hr>
          <p>這是一段文字</p>

          特點:

          1、在頁面中顯示一條水平線

          2、單標簽

          6 文本格式化標簽

          標簽1

          標簽2

          說明

          b

          strong

          加粗

          u

          ins

          下劃線

          i

          em

          傾斜

          s

          del

          刪除線

          <b>這是一段文字</b>
          <strong>這是一段文字</strong>
          <br>
          <u>這是一段文字</u>
          <ins>這是一段文字</ins>
          <br>
          <i>這是一段文字</i>
          <em>這是一段文字</em>
          <br>
          <s>這是一段文字</s>
          <del>這是一段文字</del>

          特點:

          1、不會獨占一行

          2、推薦使用標簽2所在列標簽

          6.1 上標標簽

          sup是superscripted這個單詞的縮寫

          <!DOCTYPE html>
          <html lang="en">
          <head>
          </head>
          <body>
              a<sup>2</sup>
          </body>
          </html>

          6.2 下標標簽

          sub是subscripted這個單詞的縮寫

          <!DOCTYPE html>
          <html lang="en">
          <head>
          </head>
          <body>
              H<sub>2</sub>O
          </body>
          </html>

          6.3 字符實體

          在網頁中展示特殊符號效果時,需要使用字符實體替代

          顯示結果

          描述

          實體名稱


          空格

          <

          小于號

          <

          >

          大于號

          >

          &

          &

          "

          雙引號

          "

          x

          乘號

          ×

          ÷

          除號

          ÷

          -

          長破折號

          |

          豎線

          |

          左單引號

          右單引號

          ?

          版權符

          ©

          ?

          注冊商標

          ®

          ?

          商標

          °

          °

          7 媒體標簽

          7.1 圖片標簽

          <img src="./001.jpg" alt="">

          img標簽常見屬性:

          屬性名

          說明

          src

          圖片路徑(絕對路徑、相對路徑)

          alt

          圖片加載失敗時,顯示的文字

          title

          鼠標懸停時,顯示的文字

          width

          圖片寬度

          height

          圖片高度

          只設置寬或高,會自動等比縮放,寬高只需要數字,不需要'px'

          <img src="./001.jpg" alt="圖片加載失敗" title="這是程序兔" width="200" height="200">

          絕對路徑:指目錄下的絕對位置,比如從根目錄開始的路徑,或完整的網絡地址

          相對路徑:從當前文件開始出發找目標文件的過程

          7.2 音頻標簽

          <audio src="music.mp3" controls autoplay loop></audio>

          audio標簽常見屬性:

          屬性名

          說明

          src

          音頻路徑

          controls

          顯示播放控件

          autoplay

          自動播放

          loop

          循環播放

          支持mp3、wav、ogg三種音頻格式

          7.3 視頻標簽

          <video src="video.mp4" controls loop autoplay></video>

          屬性名

          說明

          src

          視頻路徑

          controls

          顯示播放控件

          autoplay

          自動播放

          loop

          循環播放

          支持mp4、webm、ogg三種視頻格式

          7.4 超鏈接標簽

          超鏈接,是雙標簽,實現各個獨立頁面之間進行跳轉,可以跳去站外也可以在站內之間跳轉

          <a href="鏈接地址">文本或圖片</a>

          站外跳轉,采用絕對路徑

          <a href="http://www.baidu.com" target="_blank">百度</a>

          站內跳轉,采用相對路徑

          <!-- a頁面 -->
          <a href="b.html">跳去b頁面</a>
          <!-- b頁面 -->
          <p>b頁面</p>

          頁面內跳轉

          <a href="#ms">美食</a>
          <a href="#jd">景點</a>
          <h3 id="ms">推薦美食</h3>
          <!-- 省略n個br標簽 -->
          <br>
          <h3 id="jd">推薦景點</h3>

          屬性名

          說明

          href

          跳轉鏈接

          target

          鏈接打開方式

          target屬性值

          屬性值

          說明

          _self

          默認,原窗口打開鏈接

          _blank

          在新窗口打開鏈接

          _parent

          在父窗口打開鏈接

          _top

          在頂層窗口打開超鏈接

          target屬性值一般使用_self(默認)和_blank

          8 列表標簽

          8.1 無序列表

          <ul type="屬性值">
              <li>列表項</li>
              <li>列表項</li>
              <li>列表項</li>
          </ul>

          解釋:

          1、ul,unordered lists,無序列表,li,list item,列表項

          2、ul標簽子標簽只允許是li標簽

          3、li標簽可以包含任意內容

          type屬性值

          屬性值

          說明

          disc

          默認,實心圓

          circle

          空心圓

          square

          實心方型

          <ul>
              <li>你</li>
              <li>我</li>
              <li>他</li>
          </ul>

          8.2 有序列表

          <ol type="屬性值">
              <li>列表項</li>
              <li>列表項</li>
              <li>列表項</li>
          </ol>

          解釋:

          1、ol,ordered lists,有序列表,li,list item,列表項

          2、ol標簽子標簽只允許是li標簽

          3、li標簽可以包含任意內容

          type屬性值

          屬性值

          說明

          1

          默認,阿拉伯數字,1,2,3......

          a

          小寫英文字母,a,b,c......

          A

          大寫英文字母,A,B,C......

          i

          小寫羅馬數字,i,ii,iii......

          I

          大寫羅馬數字,I,II,III......

          <ol>
              <li>你</li>
              <li>我</li>
              <li>他</li>
          </ol>

          8.3 自定義列表

          <dl>
              <dt>名詞</dt>
              <dd>描述</dd>
              ……
          </dl>

          解釋:

          1、dl,definition lists,自定義列表;dt,definition term,自定義列表組;dd,definition description,自定義列表描述

          <dl>
              <dt>稱呼</dt>
              <dd>你</dd>
              <dd>我</dd>
              <dd>他</dd>
          </dl>

          9 表格標簽

          9.1 表格基本結構

          <table>
              <tr>
                  <td>單元格1</td>
                  <td>單元格2</td>
              </tr>
              <tr>
                  <td>單元格3</td>
                  <td>單元格4</td>
              </tr>
          </table>

          解釋:

          1、tr,table row,表格行;td,table data cell,表行單元格

          <table>
              <tr>
                  <td>1</td>
              </tr>
          </table>

          9.2 表格標簽屬性

          屬性名

          屬性值

          描述

          border

          數字

          邊框寬度

          width

          數字

          表格寬度

          height

          數字

          表格高度

          <table border="1" width="200" height="50">
              <tr>
                  <td>1</td>
              </tr>
          </table>

          9.3 表格標題標簽

          <caption>標題內容</caption>,位于表格內第一行

          <table border="1" width="200" height="50">
              <caption>數字</caption>
              <tr>
                  <td>1</td>
              </tr>
          </table>

          9.4 表格表頭單元格標簽

          <th></th>,th,table header cell,表頭單元格

          <table border="1" width="200" height="50">
              <caption>數字</caption>
              <tr>
                  <th>序號</th>
              </tr>
              <tr>
                  <td>1</td>
              </tr>
          </table>

          9.5 表格語義化結構標簽

          thead、tbody、tfoot

          <table border="1" width="200" height="50">
              <caption>數字</caption>
              <thead>
                  <tr>
                      <th>序號</th>
                  </tr>
              </thead>
              <tbody>
                  <tr>
                      <td>1</td>
                  </tr>
              </tbody>
              <tfoot>
                  <tr>
                      <td>匯總</td>
                  </tr>
              </tfoot>
          </table>

          9.6 合并單元格

          屬性名

          屬性值

          說明

          rowspan

          合并單元格個數

          合并行,單元格垂直合并

          colspan

          合并單元格個數

          合并列,單元格水平合并

          <td rowspan="跨越的行數"></td>
          <td colspan="跨越的列數"></td>
          <table border="1" width="200" height="50">
              <caption>數字</caption>
              <thead>
                  <tr>
                      <th>序號</th>
                      <th>金額</th>
                      <th>金額</th>
                  </tr>
              </thead>
              <tbody>
                  <tr>
                      <td>1</td>
                      <td rowspan="2">20</td>
                      <td rowspan="2">20</td>
                  </tr>
                  <tr>
                      <td>2</td>
                  </tr>
              </tbody>
              <tfoot>
                  <tr>
                      <td>匯總</td>
                      <td colspan="2">40</td>
                  </tr>
              </tfoot>
          </table>

          10 表單標簽

          10.1 form標簽

          雙標簽,包裹其它表單標簽

          <form>
              // 表單
          </form>

          form標簽的常用屬性

          屬性

          說明

          name

          表單名稱

          method

          提交方式

          action

          提交地址

          target

          打開方式

          enctype

          編碼方式

          name屬性

          一個頁面中,表單可能不止一個。name屬性,用來區分不同的表單

          <form name="myForm"></form>

          method屬性

          用來指定表單數據使用哪種提交方式給后端

          屬性值

          說明

          get

          get方式

          post

          post方式

          <form method="get"></form>

          action屬性

          用來指定表單數據提交到哪個地址

          <!-- 比如提交到index.php地址 -->
          <form action="index.php"></form>

          target屬性

          該屬性跟a標簽的target屬性一樣,其屬性值也是四個,一般情況只用到_blank屬性值,默認也是這個值

          <form target="_blank"></form>

          enctype屬性

          屬性值

          說明

          application/x-www-form-urlencoded

          在發送前編碼所有字符(默認)

          multipart/form-data

          不對字符編碼,在使用包含文件上傳控件的表單時,必須使用該值

          text/plain

          空格轉換為 "+" 加號,但不對特殊字符編碼

          <form enctype="multipart/form-data"></form>

          10.2 input標簽

          input是單標簽

          <input type="表單類型">

          屬性值

          說明

          text

          單行文本框

          password

          密碼文本框

          radio

          單選框

          checkbox

          多選框

          button

          普通按鈕

          submit

          提交按鈕

          reset

          重置按鈕

          file

          文件上傳

          單行文本框常用屬性

          屬性

          說明

          value

          設置文本框的默認值

          size

          設置文本框的長度

          maxlength

          設置最多可輸入字符

          <form>
              <input type="text" value="默認值" size="長度" maxlength="可輸入字符">
          </form>
          <form>
              <label>姓名:<input type="text" value="曹操" size="20" maxlength="10"></label>
          </form>

          密碼文本框常用屬性

          密碼文本框常用屬性和單行文本框常用屬性相同

          <input type="password" value="默認值" size="長度" maxlength="可輸入字符">
          <form>
              <label>密碼:<input type="password" value="12345678" size="20" maxlength="10"></label>
          </form>

          單選框

          屬性

          說明

          name

          組名,同組單選框,組名要相同,必要屬性

          value

          單選框選項取值,必要屬性

          checked

          默認選中項,同組單選框,可以有一個默認選中項

          <input type="radio" name="組名" value="取值" checked="checked">
          <form>
              性別:
              <input type="radio" name="sex" value="男" checked="checked">男
              <input type="radio" name="sex" value="女">女
          </form>

          復選框

          復選框和單選框的屬性都相同,區別復選框可以多選

          <form>
              愛好:
              <input type="checkbox" name="hobby" value="籃球" checked>籃球
              <input type="checkbox" name="hobby" value="足球" checked>足球
              <input type="checkbox" name="hobby" value="臺球">臺球
          </form>

          普通按鈕

          <input type="button" value="取值">
          <form>
              <input type="button" value="普通按鈕">
          </form>
          <button>普通按鈕</button>

          區別:

          1、input是單標簽,button是雙標簽

          2、button標簽的信息除了文本,還可以是圖像、其它標簽等

          3、button有type屬性,屬性值可以是button、submit、reset等

          提交按鈕

          <input type="submit" value="取值">
          <form>
              <input type="submit" value="提交">
          </form>

          把對應表單數據提交給后端服務器

          重置按鈕

          <input type="reset" value="取值">
          <form>
              <input type="reset" value="重置">
          </form>

          點擊重置后,所在form表單里所有內容被清空了

          文件上傳

          <input type="file">
          <form>
              <input type="file">
          </form>

          10.3 多行文本框

          <textarea name="文本名稱" cols="列數" rows="行數"></textarea>
          <form>
              <textarea name="文本名稱" cols="1" rows="2"></textarea>
          </form>

          10.4 下拉列表

          <select>
              <option>選項內容</option>
              <option>選項內容</option>
          </select>

          下拉列表標簽是為了節省頁面空間

          select標簽屬性

          屬性名

          說明

          name

          數據提交后端所需字段

          size

          下拉選項顯示個數

          multiple

          默認只允許選一個,選多個得加這個屬性

          disabled

          所有下拉選項禁止選中

          <form>
              <select name="age" size="4" multiple="multiple" disabled="disabled">
                  <option>18歲以下</option>
                  <option>18-28歲</option>
                  <option>28-38歲</option>
                  <option>38歲以上</option>
              </select>
          </form>

          option標簽屬性

          屬性名

          說明

          selected

          默認選中

          value

          被選中,數據提交后端的值

          disabled

          該下拉選項禁止選中

          <form>
              <select name="age" size="5">
                  <option value="1">18歲以下</option>
                  <option value="2" disabled="disabled">18-28歲</option>
                  <option value="3" selected="selected">28-38歲</option>
                  <option value="4">38歲以上</option>
              </select>
          </form>

          11 框架標簽

          <iframe src="URL" width="數值" height="數值"></iframe>

          框架標簽常用屬性

          屬性名

          說明

          src

          嵌入的文檔地址

          width

          標簽寬度

          height

          標簽高度

          <iframe src="https://www.bilibili.com" width="300" height="200"></iframe>

          有些文檔禁止被嵌入

          12 標簽類型

          HTML標簽分為三種,行內標簽、塊級標簽和行內塊級標簽。

          12.1 行內標簽

          特點:

          1、在頁面內只占據剛好能包裹自己內容的空間

          2、沒有寬高,內容多大就多大,行內標簽不能嵌套塊級標簽(a標簽除外)

          3、行內標簽設置寬高無效,可以對行高line-height進行設置

          4、可以設置外邊距margin和內邊距padding,但只對左右邊距有效果,上下無效

          5、常見行內標簽span、a、strong、ins、del、br等

          span標簽

          雙標簽,行內標簽,本身沒有固定樣式

          <p>我是<span>中國人</span></p>

          12.2 塊級標簽

          特點:

          1、獨占一行

          2、高度、寬度、外邊距、內邊距都可以設置生效

          3、寬度默認是父級寬度的100%

          4、是一個容器盒子,可以嵌套多層子級行內標簽、塊級標簽,文本類塊級標簽除外

          5、常見塊級標簽div、p、h1~h6、ol、ul、li等

          div標簽

          雙標簽,塊級標簽,本身沒有固定樣式

          <!-- 頭部區域 -->
          <div></div>
          <!-- 內容區域 -->
          <div></div>

          12.3 行內塊級標簽

          特點

          1、在頁面內只占據剛好能包裹自己內容的空間

          2、高度、寬度、外邊距、內邊距都可以設置生效

          3、常見塊級標簽img、input、td

          12.4 標簽類型轉換

          通過css樣式display屬性轉換,這是css的內容

          網頁中添加視頻、聲音、動畫等,可以增強用戶體驗。在HTML5之前,為網頁添加多媒體的唯一辦法,就是使用第三方的插件(如,Adobe Flash等)。

          HTML5中,提供了對多媒體的原生支持,只需通過 video 元素,就可以向網頁嵌入視頻、電影或音頻資源,通過 audio 元素向網頁嵌入音頻資源,省時省力。

          HTML中嵌入視頻和音頻代碼

          一、視頻

          在HTML5時代,在網頁中嵌入視頻非常簡單,只需要一個 video 元素,并設置它的 src 屬性,使其鏈接一個視頻地址就可以完全搞定了,這個太esay了

          <video src="media/vedio.mp4"></video>

          把這個網站在IE8中打開一看,網站上除了一片空白外,什么也沒有,這是為什么呢?

          原來 video 是HTML5最新引入的元素,并不是所有瀏覽器都支持它,IE8及以下版本都無法識別 video 標簽。如果瀏覽器不識別 video標簽,則會忽略它,當做什么都沒有。這就是網站上一片空白的原因。

          這個問題好解決,只需在 video 標簽之間放置文本信息,不支持 video 標簽的老瀏覽器,會顯示 video 標簽之間的文本信息,以提示用戶瀏覽器不支持 video,就這么簡單!

          <video src="media/vedio.mp4">

          你的瀏覽器已經老掉牙了,不支持video,還不趕快使用現代瀏覽器O(∩_∩)O~!

          </video>

          在IE8上打開一看,確實顯示了提示文本,這下好多了,至少用戶知道自己的瀏覽器不能播放視頻,該換瀏覽器了。

          下載了Opera瀏覽器的最新版本25.0,打開一看,怎么還是一片空白外!Opera瀏覽器明明是支持video標簽的,那又是為什么呢?

          這個就得從視頻的編碼格式說起了。video 元素支持三種視頻格式:Ogg、MP4、WebM。

          Ogg是帶有Theora視頻編碼和Vorbis音頻編碼的文件,后綴名為 .ogg;MP4是帶有H.264視頻編碼和AAC音頻編碼的MP4文件,后綴名為 .mp4;WebM是VP8視頻編碼和Vorbis音頻編碼的文件,后綴名為 .webm。

          這個Opera瀏覽器呢,它可以支持ogg,但不支持mp4。由于Opera支持video標簽,故video標簽之間的文本信息沒有顯示出來,但它不支持ogg,所以就不進行播放,最終導致頁面出現一片空白。這下可怎么辦呢?

          其實辦法有的是,我們可以從網上下載一副圖像,放到視頻播放窗口,如果視頻無法播放,就顯示這張圖片,是不是更好呢?從網上下載一張美女圖片,干脆叫beauty.jpg吧。那這個圖像怎么添加到視頻窗口呢?

          video標簽有個poster 屬性,就是專門在視頻窗口放置圖片的。poster是一個video的占位符,無論什么情況下,只要視頻還沒有播放(視頻下載過程中、視頻不存在、不支持該視頻類型、用戶點擊播放按鈕前),就會顯示該圖像,可以看做是視頻播放之前插入的宣傳畫或海報。

          <video src="media/vedio.mp4" poster = "img/beauty.jpg">

          你的瀏覽器已經老掉牙了,不支持video,還不趕快使用現代瀏覽器O(∩_∩)O~!

          </video>

          在Opera瀏覽器上刷新一下,真的有一個美女沖著自己微笑呢。雖然視頻沒有播放出來,這回心情卻是好多了。

          那我可不能一天到晚只看美女呀,視頻還是還是要想辦法播放出來的。既然Opera瀏覽器不支持mp4,我們就換成需要ogg吧,這樣就肯定沒問題了。

          我想了想,這個辦法不好,萬一某個瀏覽器只支持支持ogg,不支持mp4呢。這年頭,什么都缺,就是不缺點子,隨便在網上一搜,辦法就有了。

          在 video 元素中添加 source 元素,就可以解決這個問題。在source 元素中,通過 src 屬性指定視頻的地址,通過 type 屬性指定視頻的類型,以幫助瀏覽器決定是否能播放該視頻。并且,在 video 元素中可以添加任意多個source 元素,讓不同的 source 元素鏈接到不同的視頻文件。

          這樣的話,當瀏覽器發現 video 元素時,首先會查看它本身是否定義了 src 屬性。如果沒有,就會檢查 source 元素。瀏覽器會逐個查看這些視頻源,直到找到一個可以播放的視頻。一旦找到,就會播放它并忽略其他的視頻源。我們干脆添加兩個source,一個是mp4,一個是ogg,這下視頻是一定能播放出來了。

          <video poster = "img/beauty.jpg">

          <source src="media/vedio.mp4" type="video/mp4">

          <source src="media/vedio.ogg" type="video/ogg">

          你的瀏覽器已經老掉牙了,不支持video,還不趕快使用現代瀏覽器O(∩_∩)O~!

          </video>

          在Opera瀏覽器上又刷新一下,只有美女沖著我微笑,視頻還是沒播放出來。唉,太粗心了,忘記添加播放視頻的控件了。

          在video標簽中,通過添加controls 屬性來為視頻添加播放控件,方便用戶執行播放、暫停操作和音量控制。

          <video poster = "img/beauty.jpg" controls>

          (此處略去500字…)

          </video>

          在Opera瀏覽器上又刷新一下,效果真的不一樣,這次不僅看到美女,還看到了視頻控件。用鼠標猛戳一下那個播放按鈕,哈哈,不錯,真的聽到美妙的旋律。我們的ogg文件,終于播放出來了,讓我們好好享受一下吧O(∩_∩)O。

          聽了一會,忽然一想,不對呀,我剛才點了播放按鈕后,等了半天才聽到聲音。能不能我一點播放按鈕,就立即播放呢?

          原來視頻也是需要下載緩存的,點擊播放按鈕后,首先緩存,然后才播放的。那能不能在頁面加載的同時就緩存呢。這樣,用戶點擊播放后,就不必等待了。

          這當然可以,在video標簽中,通過添加preload屬性來為視頻添加預加載功能,在頁面加載的同時加載視頻。

          <video poster = "img/beauty.jpg" controls preload>

          (此處略去500字…)

          </video>

          關于 preload 屬性,稍微再啰嗦一點,就是可以把它設置為 metadata,讓瀏覽器僅僅預加載視頻的基本信息,如尺寸、時長、以及一些關鍵的幀。這樣的話,在開始播放之前,瀏覽器可以提前計算視頻的顯示尺寸。

          既然一切都OK了!讓我們看看mp4是不是能正常播放。下載最新版的Google Chrome 38.0瀏覽器,打開網頁,猛戳一下播放按鈕。

          等等~,等等~,不對,怎么只有聲音沒有畫面,明明是mp4格式的文件呀?使用暴風影音試了一下,是有畫面的呀!

          辛辛苦苦又在網上搜了一番,花了整整586秒,終于找到了答案。mp4視頻需要h.264編碼格式才會有圖像的。

          找了一個 h.264 編碼格式的 mp4 試了一下,不錯,確實有圖像了!看了半天,原來是一部老外的電影,嘰里咕嚕一陣,一句話也沒聽懂。那O(∩_∩)O~,能否提供中文字幕呢,這樣就不必費老大勁去聽了!

          HTML5中,通過在video元素添加track元素為視頻添加字幕。字幕文件有兩種格式:WebVTT和TTML。WebVTT是Web視頻文本軌跡(Web Video Text Track),是UTF-8編碼格式的文本文件;TTML是時序文本標記語言(Timed Text Markup Language),是XML格式的文件。兩種文件的具體格式,已經超出我們的討論范圍。

          video元素支持添加多個track元素,不同的track元素鏈接到不同的字幕文件。用戶可以在各個字幕間進行切換。

          <video poster = "img/beauty.jpg" controls preload>

          <track src="en_track.vtt" kind="subtitles" srclang="en" label="English" default>

          <track src="cn_track.vtt" kind="captions" srclang="zh" label="簡體中文">

          </video>

          track元素中,src屬性指定字幕文件的URL;srclang屬性字幕文件的語言類型,若kind 屬性值是 "subtitles" 時,該屬性必需的;label 屬性指定字幕標簽,每個字幕元素必需設置一個唯一不重復的標簽,切換字幕時,會顯示標簽的名稱;kind指定字幕內容類型,只能是subtitles、captions、descriptions、chapters、metadata 之一;default屬性指定是否是默認字幕,如果一個都沒指定,將不會自動顯示字幕。

          除了字幕外,我還希望對視頻進行過多的控制,比如讓視頻自動播放、循環播放、默認靜音,以及視頻窗口的尺寸等等,這些都能做到嗎?

          這已經不是什么事了,video 元素已經提供了相關屬性,根據需要設置相應的屬性就可以了。這些屬性及含義見表 23:

          HTML中嵌入視頻和音頻代碼

          哦,原來這么簡單呀!那就到此為止吧,網頁中嵌入視頻的全部代碼都在這里,就打包給你吧!

          <video width="300" poster="img/beauty.jpg" controls preload autoplay loop muted>

          <source src="media/vedio.mp4">

          <source src="media/vedio.ogg">

          <track src="en_track.vtt" kind="subtitles" srclang="en" label="English" default>

          <track src="cn_track.vtt" kind="captions" srclang="zh" label="簡體中文">

          你的瀏覽器已經老掉牙了,不支持video,還不趕快使用現代瀏覽器O(∩_∩)O~!

          </video>

          睜大眼睛一看,卻只有7行代碼。然而,就這區區7行代碼,可把他折磨得夠嗆。

          看著這一切都全部搞定,他仰望著天空,長長呼了一口氣,顯得是那么的放松,那么的愜意。此時,他閉上眼睛,在自己的夢幻世界里遨游!


          二、音頻

          有了在網頁中嵌入視頻的經歷,要在網頁中嵌入音頻,那簡直就是小菜一碟了。只要把vedio元素換成 audio 元素,就全部搞定。

          但需要了解的是,audio 所支持的音頻格式只有Ogg Vorbis、mp3 和 wav。還要知道,由于音頻沒有畫面,也就沒有 width、height、poster 屬性,而其他屬性都支持,并且跟視頻的含義相同。

          網頁中嵌入音頻的代碼如下:

          <audio controls preload autoplay loop muted>

          <source src="media/audio.mp3">

          <source src="media/audio.wav">

          <source src="media/audio.ogg">

          你的瀏覽器已經老掉牙了,不支持audio,還不趕快使用現代瀏覽器O(∩_∩)O~!

          </audio>


          主站蜘蛛池模板: 一区二区三区在线观看视频 | 日韩AV在线不卡一区二区三区 | 亚洲色无码专区一区| 无码午夜人妻一区二区不卡视频 | 精品国产日韩一区三区| 午夜天堂一区人妻| 一区二区日韩国产精品| 少妇一晚三次一区二区三区| 亚洲成AV人片一区二区密柚| 一区二区三区四区在线视频| 久久人妻内射无码一区三区| 一区二区三区在线播放| 日本在线视频一区二区三区| 日本无卡码一区二区三区| 日韩精品区一区二区三VR| 国产午夜精品免费一区二区三区 | 亚洲日本一区二区一本一道| 精品久久久久久无码中文字幕一区 | 无码一区二区三区在线观看| 国产色精品vr一区区三区| 四虎精品亚洲一区二区三区| 精品一区二区三区视频| 国产在线精品一区在线观看| 欧美成人aaa片一区国产精品 | 亚洲AV无码一区二区三区久久精品| 人妻av无码一区二区三区| 久久国产免费一区二区三区| 无码国产精成人午夜视频一区二区 | 国产丝袜无码一区二区三区视频| 日本夜爽爽一区二区三区| 国模极品一区二区三区| 欧美人妻一区黄a片| 日韩社区一区二区三区| 亚洲片一区二区三区| 中文字幕一区二区三区有限公司 | 无码中文字幕人妻在线一区二区三区| 亚洲美女视频一区二区三区 | 国产主播一区二区| 国内精品一区二区三区最新| 久久综合九九亚洲一区| 肥臀熟女一区二区三区|