日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Web視聽(tīng)時(shí)代來(lái)臨HTML5視頻音頻元素全解析

【精選譯文】

編輯推薦:HTML 5 下一代Web開(kāi)發(fā)標(biāo)準(zhǔn)詳解

本文作者Kurt Cagle是一位資深的多媒體應(yīng)用開(kāi)發(fā)者,對(duì)HTML 5規(guī)范十分關(guān)注。本文對(duì)HTML 5規(guī)范中最吸引人的

多年以前,當(dāng)我還是程序員時(shí),我所做的大量工作主要集中在為圖形顯示及電腦游戲開(kāi)發(fā)多媒體應(yīng)用程序(這些應(yīng)用程序結(jié)合了視頻、音頻、動(dòng)畫(huà)和文字)方面。在90年代初,我主要使用的工具是Macromedia Director。在業(yè)內(nèi),一直存在基于web的音頻(更不用說(shuō)視頻)應(yīng)用程序開(kāi)發(fā)的想法,直到Realnetworks的出現(xiàn)。RealNetworks是首次提供了較大規(guī)模的流媒體技術(shù),從而使得開(kāi)發(fā)人員可以通過(guò)Internet發(fā)送緩沖的媒體內(nèi)容。后來(lái),RealNetworks又允許將播放文件嵌入到網(wǎng)頁(yè)之中。

從技術(shù)角度來(lái)講,對(duì)HTML中指定的視頻和音頻進(jìn)行標(biāo)記的想法在HTML 3(甚至HTML 4)上實(shí)現(xiàn)起來(lái)的難度很大。因?yàn)镠TML 4本質(zhì)上是個(gè)“靜止”版本,用于顯示內(nèi)容的特定機(jī)制十分依賴相應(yīng)的格式(例如,蘋(píng)果公司的QuickTime電影和Flash視頻),并且通常需要將標(biāo)記與各個(gè)參數(shù)進(jìn)行捆綁后再向服務(wù)器傳遞相關(guān)信息。因此,將視頻及音頻嵌入到網(wǎng)頁(yè)的工作變成了一種特殊的技能。

因此,將

#p#

HTML 5 的

表1 

屬性名稱

值的格式

描述

src

xs:anyURI

該屬性提供媒體源的URL地址

autobuffer

Autobuffer

(自動(dòng)緩沖)

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示是由用戶代理(瀏覽器)自動(dòng)緩沖的內(nèi)容,還是由用戶使用相關(guān)API進(jìn)行內(nèi)容緩沖

autoplay

Autoplay

(自動(dòng)播放)

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示當(dāng)網(wǎng)頁(yè)完成載入后瀏覽器是否應(yīng)該自動(dòng)播放視頻

loop

Loop(循環(huán))

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示當(dāng)多媒體運(yùn)行結(jié)束后瀏覽器是否應(yīng)該自動(dòng)循環(huán)播放

controls

Controls

(控制)

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示用戶代理(瀏覽器)是否允許用戶對(duì)視頻進(jìn)行控制

注意,

的其他常規(guī)屬性(如style、class等),甚至在該接口不可見(jiàn)時(shí)也是如此。

表2 < Video >元素屬性

屬性名稱

值的格式

描述

src

xs:anyURI

該屬性提供媒體源的URL地址

autobuffer

Autobuffer(自動(dòng)緩沖)

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示是由用戶代理(瀏覽器)自動(dòng)緩沖的內(nèi)容,還是由用戶使用相關(guān)API進(jìn)行內(nèi)容緩沖

autoplay

Autoplay(自動(dòng)播放)

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示當(dāng)網(wǎng)頁(yè)完成載入后瀏覽器是否應(yīng)該自動(dòng)播放視頻

loop

Loop(循環(huán))

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示當(dāng)多媒體運(yùn)行結(jié)束后瀏覽器是否應(yīng)該自動(dòng)循環(huán)播放

controls

Controls(控制)

在網(wǎng)頁(yè)顯示時(shí),該二進(jìn)制屬性表示用戶代理(瀏覽器)是否允許用戶對(duì)視頻進(jìn)行控制

width

dimension ###(cm|em|en|in|px|pt|%)

該屬性表示在合適的地方提供視頻圖像的顯示寬度。當(dāng)高度未指明時(shí),其值將與給定的初始視頻寬度成一定比例

height

dimension ###(cm|em|en|in|px|pt|%)

該屬性表示在合適的地方提供視頻圖像的顯示高度。當(dāng)寬度未指明時(shí),其值將與給定的初始視頻高度成一定比例

poster

xs:anyURI

當(dāng)視頻未響應(yīng)或緩沖不足時(shí),該屬性值鏈接到一個(gè)圖像。該圖像將以一定比例被顯示出來(lái)

當(dāng)視頻處于緩沖狀態(tài)時(shí),Poster實(shí)際上是一個(gè)圖像占位符,它并不總是必需的。當(dāng)預(yù)載入視頻時(shí),許多視頻編解碼器會(huì)自動(dòng)從視頻中解壓一個(gè)特殊的圖片來(lái)作為poster。當(dāng)然,并不是所有的編解碼器(codec)都有這一功能。

當(dāng)視頻載入時(shí),在特定環(huán)境下使用指定poster(放棄視頻所提供的默認(rèn)poster)來(lái)做為某個(gè)視頻的“商標(biāo)”是非常有幫助的。當(dāng)視頻開(kāi)始播放或是暫停時(shí),poster所顯示的圖片與內(nèi)容是不相干的。在另一種情況中,解碼器可以顯示視頻暫停前的最后一張圖片,或者當(dāng)視頻持續(xù)播放時(shí),視頻的最后一幀圖片將會(huì)顯示出來(lái)。

通常情況下,視頻和音頻的播放會(huì)采用指定媒體源所壓縮到媒體中的編解碼器,但有時(shí)瀏覽器并不支持某種特殊的的編解碼器。在這種情況下,可以使用@src屬性作為解決方案,HTML5同時(shí)定義了第二個(gè)元素,它主要的作用是定義媒體源所在的位置及媒體源播放所使用的編解碼器類型。表3 列出了元素的定義

表3 元素屬性

屬性名稱

值的格式

描述

src

xs:anyURI

該屬性提供媒體源的URL地址

type

媒體源的隱藏類型,字符串形式

該屬性包含了媒體源的播放隱藏類型,通常出現(xiàn)在視頻格式中

media

一個(gè)媒體編解碼器的字符串

該字符串包含了與指定媒體源所匹配的編解碼器信息

在多元素存在的情況下,如果web瀏覽器不能使用第一個(gè)指定編解碼器(瀏覽器不支持),它將會(huì)搜尋列表直到發(fā)現(xiàn)第一個(gè)可以使用的編解碼器為止。

HTML 5代碼后面所緊跟的比特描述了視頻元素所支持的三種不同編解碼器

第一種情況是:如果元素描述的是mp4資源(最典型的視頻類型為MPEG格式,盡管它們經(jīng)常是“mpg”格式的直接擴(kuò)展),那么它將使用baseline profile 編解碼器。第二種情況是將視頻與simple profile視頻編解碼器一起編碼,第三種情況是將視頻與Ogg-vorbis編解碼器一同編碼。最典型的做法是,讓@type屬性包含關(guān)聯(lián)的隱藏屬性。如果它沒(méi)有包含,那么@media屬性可以通過(guò)@type信息來(lái)確定。注意,你在判斷@src屬性時(shí)可以有多種選擇:即使元素存在,它也會(huì)被提前使用,但你必須在你的媒體元素中選擇一個(gè)。(編輯注:HTML 5標(biāo)準(zhǔn)確立的最大的爭(zhēng)議點(diǎn)就是有關(guān)視頻元素所支持的編解碼器的問(wèn)題。比如Mozilla堅(jiān)持將開(kāi)放的Ogg標(biāo)準(zhǔn)加入進(jìn)來(lái),而蘋(píng)果則爭(zhēng)搶著把MP4標(biāo)準(zhǔn)加入,其他公司也抱著相同的想法。這就造成了上述描寫(xiě)的情況。)

理論上,

與更為人熟知的MPEG格式相比,Ogg Vorbis標(biāo)準(zhǔn)是開(kāi)源并且資料非常詳實(shí)。因此,在為游戲及在線應(yīng)用程序存儲(chǔ)音頻文件時(shí),Ogg Vorbis格式非常受歡迎。與其他格式相比,Ogg Vorbis/Theora 并沒(méi)有得到HTML 5規(guī)范所給予的更多優(yōu)惠,但它是Firefox唯一支持的格式。

Chrome 和 Safari 團(tuán)隊(duì)均宣布有可能將兩種標(biāo)準(zhǔn)都添加進(jìn)來(lái)的打算。

#p#

音頻,視頻以及DOM

從IDL中可以看出,媒體元素的API主要完成以下工作:

Src屬性負(fù)責(zé)設(shè)置媒體的@src屬性,但src屬性的改變并不能自動(dòng)改變當(dāng)前視頻的屬性。當(dāng)你改變src后,你需要調(diào)用load()函數(shù)來(lái)對(duì)新視頻及其屬性進(jìn)行重新載入,并在視頻完成載入和緩沖后調(diào)用play()。在一個(gè)純粹的并行網(wǎng)絡(luò)世界中,完成這個(gè)工作相對(duì)容易。當(dāng)你從一個(gè)正在運(yùn)行的web頁(yè)面上下載媒體到本地文件時(shí),這些代碼已經(jīng)開(kāi)始運(yùn)行了。

然而,媒體文件在本質(zhì)上是一個(gè)需要較長(zhǎng)時(shí)間的過(guò)程。當(dāng)你需要同時(shí)完成載入、緩沖音頻及視頻文件及網(wǎng)絡(luò)連接時(shí),這將是一個(gè)巨大的挑戰(zhàn),因?yàn)檫@會(huì)受到很多因素的影響。由于這個(gè)原因,當(dāng)我們?cè)谔幚韜eb上的音頻及視頻時(shí),如果你想對(duì)該過(guò)程進(jìn)行控制的話,那你就不得不采取異步工作的方式,將客戶端在媒體服務(wù)器中獲得的各種信息進(jìn)行重新處理。表4(直接提取于HTML5文檔)提供了一個(gè)各種事件以及在它們被調(diào)度時(shí)的完整信息。

表4:媒體用戶接口事件

事件名稱

接口

在什么時(shí)將被調(diào)度

前提條件

Loadstart

加載開(kāi)始

Event

事件

瀏覽器開(kāi)始尋找媒體數(shù)據(jù),作為資源選擇算法的一部分

NETWORK_LOADING

網(wǎng)絡(luò)狀態(tài)為裝載狀態(tài)

Progress

進(jìn)度

Event

事件

瀏覽器獲取媒體數(shù)據(jù)。

NETWORK_LOADING

網(wǎng)絡(luò)狀態(tài)為裝載狀態(tài)

Suspend

掛起

Event

事件

瀏覽器有意不在當(dāng)前獲取媒體數(shù)據(jù),但是也不全部下載媒體資源

NETWORK_IDLE

網(wǎng)絡(luò)狀態(tài)為空閑狀態(tài)

Abort

終止

Event

事件

在媒體數(shù)據(jù)完全下載完之前,瀏覽器停止獲得媒體數(shù)據(jù)。這不能歸因于一個(gè)錯(cuò)誤的發(fā)生

錯(cuò)誤是一個(gè)對(duì)象,表示媒體錯(cuò)誤終止的MEDIA_ERR_ABORTED代碼。此時(shí),網(wǎng)絡(luò)是處于空載狀態(tài),還是處于空閑狀態(tài),取決于什么時(shí)候下載終止

Error

錯(cuò)誤

Event

事件

當(dāng)取得數(shù)據(jù)時(shí),錯(cuò)誤發(fā)生。

錯(cuò)誤是一個(gè)對(duì)象,表示媒體錯(cuò)誤終止的MEDIA_ERR_NETWORK代碼或更高層次的代碼。此時(shí),網(wǎng)絡(luò)是處于空載狀態(tài),還是處于空閑狀態(tài),取決于什么時(shí)候下載終止

Emptied

空閑

Event

事件

先前網(wǎng)絡(luò)狀態(tài)不是處于空載狀態(tài)的媒體要素剛剛轉(zhuǎn)向了這種狀態(tài)(或者是因?yàn)楫?dāng)下載時(shí)被報(bào)告了一個(gè)致命的錯(cuò)誤,或者是因?yàn)楫?dāng)資源選擇算法已經(jīng)運(yùn)行時(shí),load()方法被調(diào)用,這種情況下它是與load()方法的調(diào)用同時(shí)發(fā)生的)

網(wǎng)絡(luò)狀態(tài)為空載狀態(tài),所有的IDL屬性都是初始化狀態(tài)

Stalled

遲延

Event

事件

瀏覽器正在獲取數(shù)據(jù),但是數(shù)據(jù)出乎意料的沒(méi)有到來(lái)

NETWORK_LOADING.

網(wǎng)絡(luò)狀態(tài)為裝載狀態(tài)

Play

播放

Event

事件

重新播放已經(jīng)開(kāi)始。當(dāng)play()方法返回后,接著播放

暫停是最近的為假

Pause

暫停

Event

事件

重新播放已經(jīng)被停止。當(dāng)pause方法返回后,接著播放

暫停是最近的為真

Loadedmetadata

裝載媒體數(shù)據(jù)

Event

事件

瀏覽器決定媒體資源的持續(xù)時(shí)間和尺度。

準(zhǔn)備狀態(tài)最近處于擁有當(dāng)前的數(shù)據(jù)或第一次大于所需的數(shù)據(jù)的狀態(tài)

Loadeddata

裝載數(shù)據(jù)

Event

事件

瀏覽器能夠歸還數(shù)據(jù)當(dāng)?shù)谝淮翁幱诋?dāng)前重播的位置

準(zhǔn)備狀態(tài)最近提升到擁有的數(shù)據(jù)或第一次大于所需的數(shù)據(jù)的狀態(tài)

Waiting

等待

Event

事件

因?yàn)橄乱粋€(gè)幀不能得到,所以重新播放被停止,但是瀏覽器希望這個(gè)架構(gòu)在這個(gè)過(guò)程中能被得到

準(zhǔn)備狀態(tài)最近等于或少于當(dāng)前的數(shù)據(jù),暫停則為假。要么搜索為真,要么當(dāng)前回放位置不包含在緩沖的數(shù)據(jù)中。

Playing

正在播放

Event

事件

回放被啟動(dòng)

準(zhǔn)備狀態(tài)最近等于或多于未來(lái)的數(shù)據(jù),暫停則為假,搜索則為假;要么當(dāng)前回放位置包含在緩沖的數(shù)據(jù)中。

Canplay

能夠播放

Event

事件

瀏覽器能夠繼續(xù)回放媒體數(shù)據(jù),但如果回放操作現(xiàn)在就開(kāi)始的話,不用停下來(lái)等待進(jìn)一步的緩沖,媒體資源則不能以當(dāng)前的回放速率一直工作到結(jié)束

準(zhǔn)備狀態(tài)最近增加到未來(lái)的數(shù)據(jù)或更多

Canplaythrough

能夠從頭到尾的播放

Event

事件

瀏覽器如果現(xiàn)在就開(kāi)始回放操作的話,媒體資源能以當(dāng)前的回放速率一直工作,而不用停下來(lái)等待進(jìn)一步的緩沖

準(zhǔn)備狀態(tài)最近等于足夠的數(shù)據(jù)

Seeking

正在尋找

Event

事件

尋找IDL的屬性被修改為真,搜索操作用去的時(shí)間很長(zhǎng)。

Seeked

尋找

Event

事件

尋找IDL的屬性被修改為假

Timeupdate

時(shí)間更新

Event

事件

作為正?;胤诺囊徊糠?,當(dāng)前回放位置被改變;或是以一種有趣的方式進(jìn)行回放,如間斷進(jìn)行

Ended

結(jié)束

Event

事件

因?yàn)榈竭_(dá)了媒體資源的終點(diǎn),所以回放被停止

當(dāng)前的時(shí)間等同于媒體資源結(jié)束的時(shí)間;結(jié)束為真。

Ratechange

交換率

Event

事件

defaultPlaybackRate或是playbackRate屬性已被更新。

Durationchange

持續(xù)期的交換

Event

事件

duration屬性已被更新

Volumechange

卷交換

Event

事件

volume屬性或是muted屬性被修改。在相關(guān)屬性的安裝已經(jīng)返回后,開(kāi)始工作

在表4的所有事件中,事件canplay 和 canplaythrough是最有用的。首先,當(dāng)足夠的數(shù)據(jù)被視頻播放器載入并開(kāi)始播放時(shí),canplay將會(huì)被使用(即便所有數(shù)據(jù)并未完全載入)。對(duì)于事件canplaythrough來(lái)說(shuō),它會(huì)在數(shù)據(jù)完全載入到瀏覽器緩沖區(qū)之后才會(huì)運(yùn)行,這樣使得視頻可以流暢播放,無(wú)需因等待缺失數(shù)據(jù)而暫停。

當(dāng)視頻文件已經(jīng)有足夠的數(shù)據(jù)可以開(kāi)始播放時(shí),它將產(chǎn)生oncanplay事件,該事件可以點(diǎn)亮Play按鈕。也就是說(shuō),當(dāng)用戶按下Play按鈕時(shí),它實(shí)際上已經(jīng)在播放剛剛下載完成的視頻了。

#t#但這些僅僅在理論上是可行的。實(shí)際上,即使在firefox中,

瀏覽器供應(yīng)商的情有獨(dú)鐘

一切跡象表明,瀏覽器供應(yīng)商們把HTML 5標(biāo)準(zhǔn)中對(duì)多媒體方面的支持看成是重中之重(編輯推薦閱讀:HTML 5與瀏覽器們不得不說(shuō)的故事)。由于HTML 5可以支持多種媒體格式,并能夠更加有效在WEB瀏覽器中播放音頻和視頻,出現(xiàn)這種情況是自然而然的。然而,在HTML 5對(duì)多媒體的支持普及之前,瀏覽器對(duì)這些技術(shù)標(biāo)準(zhǔn)的實(shí)現(xiàn)還有很長(zhǎng)的路要走。

【譯稿,非經(jīng)授權(quán)請(qǐng)勿轉(zhuǎn)載。合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為,且不得修改原文內(nèi)容?!?/p>

原文:Exploring HTML 5's Audio/Video Multimedia Support   作者:Kurt Cagle


當(dāng)前文章:Web視聽(tīng)時(shí)代來(lái)臨HTML5視頻音頻元素全解析
URL地址:http://m.5511xx.com/article/dhhjegs.html