基於HTML5的移動Web應用——視頻與音頻

在HTML5之前,網頁中只能處理文字和圖像數據,在HTML5中爲網頁提供了處理視頻數據和音頻數據的能力,本節針對HTML5提供的音頻與視頻處理標籤進行詳細講解。

<video>標籤的使用

在HTML5中,使用<video>標籤來定義視頻播放器,它不僅是一個播放視頻的標籤,其控制欄還實現了包括播放、暫停、進度和音量控制、全屏等功能,更重要的是用戶可以自定義這些功能和控制欄的樣式。
視頻可以理解爲一系列連續的圖片,<video>標籤的使用方法與<img>標籤非常相似,具體語法如下: .

<video src="視頻文件路徑" controls>你的瀏覽器不支持video標籤</video>

在上面語法中,src 屬性用於設置視頻文件的路徑,也可以爲該標籤設置width和height的值,controls 屬性用於爲視頻提供播放控件,src 和controls是<video>標籤的基本屬性。並且,<video></video>之間還可以插入文字,用於在瀏覽器不能支持時顯示。
使用<img>標籤時會涉及圖片格式的問題,如jpg. gif等,視頻文件也有不同的格式,<video>標籤支持以下3種視頻格式:
(1) Ogg: 帶有Theora視頻編碼和Vorbis音頻編碼的Ogg文件。
(2) MPEG4:帶有H.264視頻編碼和AAC音頻編碼的MPEG 4文件。
(3) WebM:帶有VP8視頻編碼和Vorbis音頻編碼的WebM文件。
瀏覽器對視頻文件的支持情況如表1所示。

表1 瀏覽器對視頻文件的支持情況
在這裏插入圖片描述
src屬性其實就是source的縮寫,這裏指的是路徑。從表1中可以看出,到目前爲止,沒有一種視頻格式讓所有瀏覽器都支持,爲此,HTML5中提供了<source> 標籤,用於指定多個備用的不同格式的文件路徑,語法如下:

<video controls>
   <source src="視頻文件地址" type="video/格式">
   <source src="視頻文件地址" type="video/ 格式">
   ……
</video>

<video>標籤有了基本瞭解後,下面通過一個案例來演示標籤的具體使用方法,如示例所示。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>video元素</title>
</head>
<body>
<video src="video/movie.mp4">您的瀏覽器不支持video標籤</video>
<video src="video/movie.mp4" controls>您的瀏覽器不支持video標籤</video>
</body>
</html>

用瀏覽器打開示例,頁面效果如圖1所示。
在這裏插入圖片描述
圖1 頁面效果

在圖1中,上面部分是<video>標籤不添加controls屬性的效果,controls 屬性用於設置或返回瀏覽器應當顯示標準的音視頻控件。單擊播放按鈕,視頻開始播放,如圖2所示。

在這裏插入圖片描述
圖2 視頻開始播放的效果

圖2下方爲標準的音視頻控件,包括7項功能:播放、暫停、進度條、音量、全屏切換(供視頻)、字幕(當可用時)、軌道(當可用時)。沒有音視頻控件的情況下視頻也是可以播放的,可以利用<video>標籤的autoplay屬性,設置視頻自動播放,如示例所示。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>video元素</title>
</head>
<body>
<video src="video/movie.mp4" autoplay>您的瀏覽器不支持video標籤</video>
<br/><br/>
<video src="video/movie.mp4" controls>您的瀏覽器不支持video標籤</video>
</body>
</html>

用瀏覽器打開示例,頁面效果如圖3所示。
在這裏插入圖片描述
圖3 頁面效果

在圖3中,上面的視頻設置了自動播放,<video> 標籤還支持循環播放的功能,也是通過屬性來控制。<video> 標籤用於控制視頻播放的常用屬性如表2所示。
表2 標籤用於視頻播放的常用屬性
在這裏插入圖片描述

HTML DOM Video 對象

HTML5爲Video對象提供了用於DOM操作的方法和事件,常用方法如表3所示。

表3 Video 對象的常用方法和事件
在這裏插入圖片描述

Video對象用於DOM操作的常用屬性,如表4所示。

表4 Video 對象的常用屬性
在這裏插入圖片描述

Video對象用於DOM操作的常用事件如表5所示。

表5 Video 對象的常用事件
在這裏插入圖片描述

瞭解了Video 對象的屬性、方法和事件後,下面通過一個案例來演示如何用JavaScript代碼操作Video對象,具體使用方法如示例所示。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>JavaScript操作video對象</title>
</head>
<body>
<video id="myVideo" src="video/myVideo.ogv">您的瀏覽器不支持video標籤</video>
<br/><br/>
<input  type="button" value="播放/暫停" onclick="playPause()"/>
</body>
<script>
    var myVideo=document.getElementById("myVideo");
    function playPause()
    {
        if (myVideo.paused)
            myVideo.play();
        else
            myVideo.pause();
    }
</script>
</html>

在這裏插入圖片描述
圖4 頁面效果
在示例中,定義了一個用於控制播放或者暫停的按鈕,然後爲該按鈕的onclick 事件定義方法playPause(),使用JavaScript中的if條件語句進行狀態判斷,當該播放器的狀態爲暫停(默認沒有播放的視頻會被識別爲暫停狀態)時調用play)方法,切換爲播放,單擊“播放/暫停”按鈕會切換到播放的狀態,如圖5所示。
在這裏插入圖片描述
圖5 播放狀態

再次單擊“播放/暫停”按鈕會切換到暫停狀態。

<audio> 標籤的使用

目前,在網頁中播放音頻沒有固定的標準,大多數音頻是通過插件(比如Flash)來播放的,但並非所有瀏覽器都有同樣的插件,HTML5 中提供<audio>標籤來定義Web上的聲音文件或音頻流。其使用方法與<video>標籤基本相同,語法如下:

<audio src="音頻文件路徑" controls>您的瀏覽器不支持audio標籤</audio>

<audio>標籤同樣支持引入多個音頻源,提到多個音頻源就涉及音頻的格式問題,當前<audio>標籤支持以下3種格式:

(1) Vorbis: 類似ACC (Advanced Audio Coding, 高級音頻編碼)的另一種免費、開源的音頻編碼,是用於替代MP3的下一代音頻壓縮技術。
(2) MP3:一種音頻壓縮技術,其全稱是動態影像專家壓縮標準音頻層面3 (Moving Picture Experts Group Audio Layer 11),簡稱爲MP3。它被設計用來大幅度地降低音頻數據量。
(3) Wav:錄音時用的標準的Windows文件格式,文件的擴展名爲WAV,數據本身的格式爲PCM或壓縮型,屬於無損音樂格式的一種。

與視頻的支持情況相似,目前沒有一種瀏覽器支持所有的音頻格式,具體如表6所示。

表6 瀏覽器對音頻文件的支持情況
在這裏插入圖片描述

多個音頻源使用<source>標籤來定義,語法如下:

<audio controls>
     <source src="音頻文件路徑" type="audio/格式">
     <source src="音頻文件路徑" type="audio/格式">
     您的瀏覽器不支持audio標籤 
</audio>

<audio>標籤中也包含很多用於控制音頻播放的常用屬性,如表7所示。

表7 標籤的屬性
在這裏插入圖片描述

從表7中可以看出,與<video>標籤相比,<audio> 標籤沒有width和height屬性,其他屬性名稱都相同。
<audio>標籤的具體用法如示例所示。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>audio標籤的使用</title>
</head>
<body>
<audio src="audio/music.mp3" controls></audio>
</body>
</html>

用瀏覽器打開示例,頁面效果如圖6所示。
在這裏插入圖片描述
圖6 頁面效果
圖6所示的音頻播放器效果類似於視頻播放器的播放控件,在不添加controls屬性的情況下頁面看到的應該是空白,可以通過JavaScript控制音頻的播放。

HTML DOM Audio對象

HTML5爲Audio對象提供了用於DOM操作的方法和事件,常用方法如表8所示。

表8 Audio 對象的常用方法
在這裏插入圖片描述
Audio對象用於DOM操作的常用屬性,如表9所示。

表9 Audio 對象的常用屬性
在這裏插入圖片描述

Audio對象用於DOM操作的常用事件如表10所示。

表10 Audio 對象的常用事件
在這裏插入圖片描述

以上方法、屬性和事件可以通過JavaScript來操作,用法與Video對象中的方法屬性等非常相似。例如,使用按鈕來控制音頻的播放,如示例所示。

<!Doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>JavaScript操作audio對象</title>
</head>
<script>
    //頁面加載完畢後執行
    window.onload=function(){
        //通過標籤名獲取button按鈕
        document.getElementsByTagName("button")[0].onclick=function(){
            //通過標籤名獲取audio對象
            document.getElementsByTagName("audio")[0].load();
            document.getElementsByTagName("audio")[0].play();
        }
    }
</script>
<body>
<audio src="audio/music.mp3"></audio>
<button >播放音樂</button>
</body>
</html>

用瀏覽器打開示例,頁面效果如圖7所示。
在這裏插入圖片描述
圖7 頁面效果

在示例中,使用標籤名來獲取某個標籤時,默認得到的是數組對象,數組對象的下標從0開始,這裏每種標籤只有一個,所以使用下標0來獲取對象,單擊圖7中的“播放音樂”按鈕,音樂開始播放。


超全面的測試IT技術課程,0元立即加入學習!有需要的朋友戳:


騰訊課堂測試技術學習地址

歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章