一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

掌握HTML5中的多媒體--視頻(video)

 handup 2015-10-27

除非你一直生活在一個(gè)偏遠(yuǎn)的島嶼上,過(guò)去一年左右的時(shí)間,你應(yīng)該已經(jīng)聽(tīng)說(shuō)過(guò)HTML5的各式炒作。HTML5將重塑富Web應(yīng)用的未來(lái)。

下面 Figure 1的示例展示了HTML5中video標(biāo)簽與傳統(tǒng)的object標(biāo)簽的不同.

Figure 1

1.  <section>

2.      <h1>使用HTML5的video標(biāo)簽播放視頻</h1>

3.      <videosrc="video1.mp4">

4.      </video>

5.  </section>

6.  <section>

7.      <h1>使用Flash插件播放視頻</h1>

8.      <objecttype="application/x-shockwave-flash"

9.                 data="player.swf"width="290"height="24">

10.        <paramname="movie"value="player.swf">

11.    </object>

12.</section>

那么重要的是什么呢? 這兩個(gè)示例很簡(jiǎn)單,也易于實(shí)現(xiàn)。因?yàn)?lt;視頻>標(biāo)記是一個(gè)用來(lái)播放媒體的標(biāo)準(zhǔn), 你不必猜測(cè)瀏覽器是否要安裝特定的某個(gè)版本插件。這個(gè)標(biāo)準(zhǔn)正是HTML之前最為缺少的那部分。

HTML5支持的媒體格式

HTML5支持AAC, MP3 和 Ogg Vorbis三種音頻格式,以及Ogg Theora, WebM 和MPEG-4三種視頻格式.

但并不是所有瀏覽器都支持所有的格式。如下表:

Figure 2瀏覽器支持的媒體格式

瀏覽器

視頻格式

音頻格式


Ogg Theora

H.264

VP8 (WebM)

Ogg Vorbis

MP3

Wav

Internet Explorer

手動(dòng)安裝

9.0

手動(dòng)安裝

No

Yes

No

Mozilla Firefox

3.5

No

4.0

Yes

No

Yes

Google Chrome

3.0

No

6.0

Yes

Yes

Yes

Safari

手動(dòng)安裝

3

手動(dòng)安裝

No

Yes

Yes

Opera

10.50

No

10.60

Yes

No

Yes

使用視頻標(biāo)簽<video>

在HTML5中播放視頻,直接使用<video>標(biāo)簽就可以了, 如下所示:

1. <videosrc="video.mp4"controls/>

src屬性 (http://www./TR/html5/video.html#the-source-element) 設(shè)備要播放視頻的名稱(chēng)(可以多個(gè)), control的布爾值用來(lái)調(diào)整是否顯示播放控制欄. 完整的屬性列表如下所示:

Figure 3視頻相關(guān)的屬懷

屬性

描述

 Muted

Muted

定義的音頻的初始狀態(tài).目前僅支持muted.

 Crossorigin


定義當(dāng)前視頻是否是一個(gè)跨域的項(xiàng)目.

 Mediagroup

ID

將多個(gè)視頻或音頻集合在一起,并結(jié)合MediaController實(shí)現(xiàn)同步控制.

 Autoplay

Autoplay

如果指定,視頻會(huì)在準(zhǔn)備好(如已取得可播放視頻)后自動(dòng)播放.

 Controls

Controls

添加播放控制及音量控制功能欄.

 Height

Pixels

指定播放器的高度,以pixel為單位.

 Loop

Loop

如果指定,視頻將重復(fù)播放.

 Poster

url

指定視頻的預(yù)覽圖.

 Preload

Preload

如果指定,視頻會(huì)在加頁(yè)面加載過(guò)程中被加載。當(dāng)Autoplay被指定時(shí),會(huì)被忽略。

 Src

url

目標(biāo)視頻的URL.

 Width

Pixels

指定播放器的寬度,以pixel為單位.

下面是一使用了多個(gè)屬性的示例,也包括一個(gè)備用(fallback)的錯(cuò)誤信息(當(dāng)瀏覽器不支持video標(biāo)簽時(shí)顯示).

1.  <videosrc="video.mp4"width="320"height="240"autoplaycontrolsloop>

2.      Your browser does not support the video tag.

3.  </video>

你也可以使用MIME指定視頻的編碼格式,如下:

1.       <!-- H.264 Constrained baseline profile video (main and extended video compatible)

2.         level 3 and Low-Complexity AAC audio in MP4 container -->

3.       <source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>

4.       <!-- H.264 Extended profile video (baseline-compatible) level3 and Low-Complexity

5.         AAC audioin MP4 container -->

6.       <source src='video.mp4' type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'>

你也可使用JavaScript來(lái)設(shè)定這些屬性. 如下面的代碼示例:

<!—顯示控制欄的三種方式-->

<videocontrols>

<videocontrols="">

<videocontrols="controls">

// JavaScript中顯示控制欄的兩種方式

video.controls = true;

video.setAttribute

       ('controls',

        'controls');

如果無(wú)法確定目標(biāo)瀏覽器是否能支持<video>或者你的視頻格式,你最好指定一個(gè)回退的信息,以告訴用戶為什么沒(méi)有到期望的內(nèi)容。如下所示:

1. <videocontrols>

2.     <sourcesrc="video1.mp4"/>

3.     <sourcesrc="video1.ogv"/>

4.     <sourcesrc="video1.webm"/>

5.     <p>This browser does not support HTML5 video</p>

6. </video>

如果你要確保視頻可以被播放,你可以按照以前的方式加入一個(gè)flash的object標(biāo)簽,如下:

1. <videocontrols>

2.     <sourcesrc="video1.mp4"/>

3.     <sourcesrc="video1.ogv"/>

4.     <sourcesrc="video1.webm"/>

5.     <objectdata="videoplayer.swf">

6.         <paramname="flashvars"value="video1.mp4">

7.         您的瀏覽器對(duì)HTML5 Video 和 Flash 都不支持

8.     </object>

9. </video>

也可以在JavaScript中使用canPlayType來(lái)檢測(cè)瀏覽器是否可以播放某個(gè)格式的視頻:

1.       var video = document.getElementsByTagName('video')[0];

2.       if (video.canPlayType)

3.          { //支持video標(biāo)簽

4.       if (video.canPlayType('video/ogg; codecs="theora, vorbis"'))

5.             { // it may be able to play

              }

6.               else

7.             {// the codecs or container are not supported

8.               fallback(video);

9.         }

10.      }

如果希望有更明確清晰的提示,可以使用onerror事件監(jiān)聽(tīng)器來(lái)報(bào)告一個(gè)錯(cuò)誤:

1.       <video src="video.mp4"

2.              onerror="fallback(this)">

3.              不支持<video>

4.       </video>

使用poster,你可以在video播放區(qū)域顯示一張圖片來(lái)替代,它可以用來(lái)顯示視頻的預(yù)覽圖。下面是一個(gè)示例:

1.       <video src="video1.mp4" poster="preview.jpg"</video>

最后,使用JavaScript和HTML,你就可以創(chuàng)建一個(gè)交互性的視頻播放器。Figure 4 展示如何使用JavaScript添加一個(gè)video并響應(yīng)用戶的控制操作.(譯注:比如Youtue就是采用動(dòng)態(tài)創(chuàng)建video控件的方式來(lái)提供視頻播放功能的。)

Figure 4 JavaScript對(duì)視頻的控制

1.       var video = document.createElement('video');

2.       video.src ='video1.mp4';

3.       video.controls =true;

4.       document.body.appendChild(video);

5.       var video = new Video();

6.       video.src ='video1.mp4';

7.       var video = new Video('video1.mp4')

8.       <script>

9.           var video = document.getElementsByTagName('video')[0];

10.      </script>

11.      <inputtype="button"value="Play"onclick="video.play()">

12.      <inputtype="button"value="Pause"onclick="video.pause()">

完整的事件和特性列表,參考http://www./TR/html5/video.html#playing-the-media-resource.

譯注作者的代碼可能會(huì)讓你有些疑問(wèn)??吹臅r(shí)候,要注意分辨作者可能是使用多種方式來(lái)實(shí)現(xiàn)同一個(gè)功能。以最后一個(gè)代碼為例,其中5~7行是1~2行的另兩種寫(xiě)法。 

以下是一份動(dòng)態(tài)加入video元件,并可以控制靜音的功能示例:

*muteVideo是靜音狀態(tài)切換函數(shù)

*playVideo函數(shù)在沒(méi)有video控件時(shí)會(huì)添加一個(gè)控件,如果已經(jīng)存在就播放。

[javascript] view plaincopyprint?
  1. function addSourceToVideo(element,src,type)  

  2. {  

  3.  var source = document.createElement('source');  

  4.  source.src = src;  

  5.  source.type= type;  


  6.  element.appendChild(source);  

  7. }  


  8. function insertVideo(src,type,width,height)  

  9. {  

  10.  var vid = document.createElement("video");  


  11.  vid.controls="controls";  

  12.  vid.width = width;  

  13.  vid.height=height;  

  14.  vid.id = "video_control";  

  15.     vid.muted= false;  


  16.  addSourceToVideo(vid,src,type);  


  17.  document.getElementById("show").appendChild(vid);  

  18. }  


  19. function muteVideo()  

  20. {  

  21.  var vid = document.getElementById("video_control");  


  22.  if(vid == undefined)  

  23.  return;  


  24.  if (vid.muted==undefined || !vid.muted)  

  25.  {  

  26.  vid.muted = true;  

  27.  }  

  28.  else  

  29.  {  

  30.  vid.muted = false;  

  31.  }  

  32. }  


  33. function playVideo()  

  34. {  

  35.     var video = document.getElementById("video_control");  


  36.     if(video==undefined)  

  37.     {  

  38.      insertVideo("files/happyfit2.mp4","video/mp4",604,256);  

  39.      video = document.getElementById("video_control");  

  40.     }  


  41.  video.play();  

  42. }  


 參考:掌握HTML5中的多媒體--音頻(audio)

原文地址:Working with Media in HTML5

作者:Jason Beres

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    久久婷婷综合色拍亚洲| 丰满的人妻一区二区三区| 日韩精品一区二区三区射精| 久久亚洲成熟女人毛片| 91人妻丝袜一区二区三区| 中国一区二区三区不卡| 国内精品偷拍视频久久| 日韩熟妇人妻一区二区三区| 日韩中文高清在线专区| 91香蕉视频精品在线看| 嫩草国产福利视频一区二区| 亚洲国产欧美久久精品| 久久99热成人网不卡| 日本三区不卡高清更新二区| 婷婷色网视频在线播放| 国产伦精品一一区二区三区高清版| 欧美区一区二在线播放| 国产在线一区二区三区不卡| 嫩呦国产一区二区三区av| 国产精品成人一区二区在线| 好吊日成人免费视频公开| 91在线国内在线中文字幕| 亚洲妇女作爱一区二区三区| 国产在线一区二区三区不卡| 国产偷拍盗摄一区二区| 欧美六区视频在线观看| 色婷婷成人精品综合一区| 国产欧美日韩不卡在线视频| 日本不卡在线视频你懂的 | 91一区国产中文字幕| 欧美区一区二区在线观看| 又大又长又粗又黄国产| 久久精品色妇熟妇丰满人妻91 | av免费视屏在线观看| 午夜视频免费观看成人| 污污黄黄的成年亚洲毛片| 欧美日韩人妻中文一区二区| 国产成人亚洲精品青草天美| 色综合视频一区二区观看| 国产亚洲欧美日韩国亚语| 国产不卡一区二区四区|