HTML5高級(jí)-01

視頻處理

在HTML5中播放視頻

  • 在HTML5中播放視頻
    1.HTML5中提到最多的就是視頻處理,視頻是互聯(lián)網(wǎng)中的重要應(yīng)用.在HTML5中,添加了一個(gè)新元素,以便在HTML文檔中插入和播放視頻,這個(gè)元素就是video元素

2.video元素提供了播放,暫停和音量控制來(lái)控制視頻,也提供了width 和height 屬性來(lái)控制視頻的尺寸
(IE8以及以前的版本不支持)

3.使用video元素至少要提供兩種視頻格式的文件:OGG和MP4

OGG:包含Theora視頻和Vorbis音頻解碼器
MP4:采用H.264視頻和AAC音頻解碼器

瀏覽器 MP4 WebM Ogg
IE9+ yes no no
Chrome yes yes yes
Firefox3.6+ no yes yes
Safari5+ yes no no
Opera10.6+ no yes yes
  • video元素
    1.video元素可以實(shí)現(xiàn)在HTML頁(yè)面中嵌入視頻內(nèi)容,該元素的屬性可以設(shè)置為是否自動(dòng)播放,預(yù)加載及視頻高寬等
<video width="360" height="240" src="source/video.mp4">
     視頻不能播放
</video>

src屬性:用于讀取媒體文件
autoplay屬性:設(shè)置該視頻是否自動(dòng)播放
width 和height 屬性:設(shè)置該視頻的寬度和高度

2.video元素中可以使用source元素來(lái)向?yàn)g覽器提供備選視頻格式

<video width="360" height="240">
   <source src="source/video.mp4/">
   <source src="source/video.ogg/">
視頻不能播放
</video>

(source元素中的src屬性和video元素屬性作用相同,都是用于讀取媒體文件)
注:使用source元素讀取流媒體,video元素不需要使用src屬性

  • video屬性,video元素具備以下屬性

controls:該屬性是video元素特有屬性,用于顯示瀏覽器所提供的視頻控件按鈕

<video width="360" height="240"
          src="source/video.mp4"autoplay controls>
        視頻不能播放
</video>

(autoplay設(shè)置這個(gè)屬性時(shí),加載視頻后自動(dòng)播放)
poster: 該屬性指定一個(gè)URL,在視頻等待播放時(shí)顯示一幅圖像

preload:該屬性可以設(shè)置三個(gè)值
1.none: 不緩存視頻,為了減少不必要的流量
2.metadata:播放前只加載視頻的高度,寬度和其他此類信息
3.auto:默認(rèn)值,要求瀏覽器盡可能快的下載視頻
loop:設(shè)置這個(gè)屬性時(shí),瀏覽器會(huì)反復(fù)播放該視頻

編程實(shí)現(xiàn)視頻播放器

  • 事件
    1.在不同的瀏覽器實(shí)現(xiàn)video代碼,播放器控件的圖形設(shè)計(jì)會(huì)有一些差別,每一種瀏覽器都有其特殊的按鈕和進(jìn)度條,設(shè)置還有一些特殊的特性,為了讓各瀏覽器顯示效果保持一致,需要使用HTML5支持新的視頻事件,屬性和方法,來(lái)保持一致

2.HTML5加入了新的事件API.在視頻和音頻處理中,HTML5包含一些通知媒體狀態(tài)的事件,如下載進(jìn)度,視頻是否結(jié)束等

3.下面是一些常用事件:
progress:用于更新媒體的下載進(jìn)度,會(huì)周期性的觸發(fā)
conplaythrough:當(dāng)整個(gè)媒體可以順利播放時(shí),就會(huì)觸發(fā)這個(gè)事件
conplay:不考慮整體狀態(tài),只要下載了一定的可放幀會(huì)觸發(fā)這個(gè)事件
ended:媒體到達(dá)末尾時(shí)觸發(fā)
pause:媒體暫停時(shí)觸發(fā)
play:媒體開(kāi)始播放時(shí)觸發(fā)
error:媒體播放出現(xiàn)錯(cuò)誤時(shí)觸發(fā)

window.onload=function(){
  elem=document.getElementById('media');
  elem.addEventListener('pause',userPause,flase);
  elem.addEventListener('play',userPlay,flase);
}
function userPause(){
  .........
}
function userPlay(){
  ......................
}
  • 方法
    下面是HTML5新增加的媒體處理方法
    play() 播放媒體文件
    pause() 暫停播放
    load() 加載媒體文件,動(dòng)態(tài)應(yīng)用程序可使用該方法提前加載
    canPlayType(type)查看瀏覽器是否支持這種文件格式的媒體文件
window.onload=function(){
var  elem=document.getElementById('media');
var btn=document.getElementById('play');
if(elem.paused){
 elem.play();
 btn.value="暫停";
}else{
 elem.pause();
 btn.value="開(kāi)始";
}
}
  • 屬性
    html5新增的針對(duì)視頻元素的處理屬性如下:
    paused 媒體處于暫停或未播狀態(tài),這個(gè)值為true
    ended 如果媒體已經(jīng)結(jié)束播放,這個(gè)值為true
    duration 返回媒體時(shí)長(zhǎng),以秒為單位
    currentTime 獲取或設(shè)置媒體播放位置

音頻處理

在HTML5中播放音頻

  • audio元素
    audio元素可以實(shí)現(xiàn)在HTML頁(yè)面中嵌入音頻內(nèi)容,該元素的屬性可以設(shè)置是否播放,預(yù)加載及循環(huán)播放等
    audio元素提供了播放,暫停,音量控件來(lái)控制音頻
  • audio屬性
    3.使用audio元素至少要提供三種音頻格式的文件:MP3.Ogg,Wav
    3.1MP3:采用mpeg音頻解碼器
    3.2Ogg:采用ogg音頻解碼器
    3.3Wav:采用wav音頻解碼器

瀏覽器 MP3 Wav Ogg
IE9+ yes no no
Chrome6+ yes yes yes
Firefox3.6+ no yes yes
Safari5+ yes yes no
Opera10.6+ no yes yes


語(yǔ)法結(jié)構(gòu):

<audio src="mp3/yellow.mp3" controls>
</audio>
或:
<audio controls>
<source src=
"mp3/yellow.mp3"/>
</audio>

audio元素支持一下屬性:
src:指定播放文件的URL,可通過(guò)<source>
controls:可激活各瀏覽器提供的默認(rèn)頁(yè)面
autoplay: 加載音頻后自動(dòng)播放
preload: 緩存設(shè)置

編程實(shí)現(xiàn)音頻播放器

  • 事件,方法
    HTML5媒體API支持視頻和音頻,視頻所支持的每一種事件,方法和屬性,音頻都有對(duì)應(yīng)的支持
    常用事件:
    ended
    pause
    play
    常用方法:
    play()
    pause()

HTML5表單元素

表單簡(jiǎn)介

無(wú)論是實(shí)現(xiàn)功能還是展示頁(yè)面元素,表單的HTML中都有不可代替的作用
在其他版本的HTML中,表單包含的元素非常有限,并且屬性也不多,尤其是在數(shù)據(jù)交互過(guò)程中數(shù)據(jù)的驗(yàn)證需要編寫大量的JavaScript代碼
上述的不足,都已經(jīng)在HTML5中被克服了,HTML5在以上的基礎(chǔ)上增加了許多標(biāo)簽以及屬性,為開(kāi)發(fā)人員帶來(lái)方便

input類型

  • 電子郵件類型
    功能描述:輸入E-mail地址的文本框
    語(yǔ)法:<input type="email"/>

  • 搜索類型
    輸入搜索關(guān)鍵字操作的文本框
    語(yǔ)法:<input type="search"/>

  • URL類型
    輸入Web站點(diǎn)地址的文本框
    語(yǔ)法:<input type="url"/>

  • 電話號(hào)碼類型
    主要針對(duì)電話號(hào)碼的輸入,能夠指示瀏覽器根據(jù)不同的設(shè)備進(jìn)行調(diào)整
    語(yǔ)法:<input type="tel"/>

  • 數(shù)字類型
    只能接受數(shù)字值
    語(yǔ)法:<input type="number"/>
    屬性:
    min:當(dāng)前域能接受的最小值
    max:當(dāng)前域能接受的最大值
    step:決定了域所接受值的遞增或遞減的步長(zhǎng).默認(rèn)為1

  • 范圍類型
    允許用戶選擇一個(gè)范圍的數(shù)值
    語(yǔ)法:<input type="range" min="10" max="1000" value="50"/>
    屬性:
    min 范圍的下限值
    max 范圍的上限值
    step 聲明該值遞增或遞減的步長(zhǎng)
    value 設(shè)置初始值

  • 顏色類型
    預(yù)定義顏色拾取控件
    語(yǔ)法:<input type="color"/>

  • 日期類型
    創(chuàng)建一個(gè)日期輸入域
    語(yǔ)法:<input type="date"/>

  • 周類型
    與data類似,但是只能選擇周
    語(yǔ)法:<input type="week"/>

  • 月份類型
    與data類型很相似,但是只能選擇一個(gè)月份
    語(yǔ)法:<input type="month"/>

  • 日期與時(shí)間類型
    支持輸入完整的時(shí)間和日期,包括時(shí)區(qū)
    語(yǔ)法:<input type="datatime"/>

  • 本地日期與時(shí)間類型
    支持輸入完整的時(shí)間和日期,但不包括時(shí)區(qū)
    語(yǔ)法:<input type="datatime-local"/>

新表單元素

  • Datalist元素
    <datalist>元素是一個(gè)表單特有的元素,它可以使用list屬性預(yù)創(chuàng)建一組列表項(xiàng),后面可以為輸入框的輸入提示
<datalist id="mylist">
  <option value="010" label="北京"/>
  <option value="021" label="上海"/>
  <option value="023" label="重慶"/>
  <option value="022" label="天津"/>
</datalist>
<input type="text" name="address" list="mylist">
  • Progress元素
    <progress>表示一個(gè)任務(wù)的完成進(jìn)度,而且通常這些任務(wù)都在表單中啟動(dòng)和處理
    屬性:
    Value:任務(wù)執(zhí)行的進(jìn)度
    Max:聲明任務(wù)完成后達(dá)到的值
<progress max="100" value="20"></progress>
  • Meter元素
    Meter元素可用于顯示刻度,而非進(jìn)度
    屬性:
    min,max 設(shè)置范圍邊界
    value 確定測(cè)量的值
    low high optimum 將范圍劃分為不同的部分和設(shè)置最佳位置
<meter min="0" max="100 low="20" high="80" optimum="70"value="55"/>
  • Output元素
    1.Output元素通常用于顯示表單元素處理的結(jié)果值
    屬性:
    for 將output元素與參與計(jì)算的源元素相關(guān)聯(lián).目的是為了提高代碼的可讀性
<form 
oninput="x.value=parseInt(a.value)+parseInt(b.value)"
>0
  <input type="range" id="a" value="50">100+
  <input type="number" id="b" value="50">=
  <output name="x" for="a b"></output>
</form>

HTML5表單屬性

屬性介紹

有一些輸入類型要求使用特定的屬性才能顯示效果,如前面提到過(guò)的min max step 其他輸入類型需要使用一些屬性來(lái)改進(jìn)其他性能,或者決定驗(yàn)證過(guò)程的重要性

HTML5標(biāo)準(zhǔn)中原來(lái)的基礎(chǔ)上增加了一些新的屬性:Placeholder屬性、Multiple屬性桃煎、Autofocus屬性会油、Form屬性

屬性詳解

  • Placeholder屬性
    Placeholder屬性通常用于search輸入類型,也可以用在文本域,它表示一個(gè)簡(jiǎn)單提示,單詞或詞匯,可用于幫助用戶輸入正確的內(nèi)容.該屬性能夠在文本域的內(nèi)部顯示一些內(nèi)容
    語(yǔ)法: <input type="text" placeholder="請(qǐng)輸入用戶名稱">

  • Multiple屬性
    Multiple屬性可以用在一些輸入類型中(email file等)
    從而支持在一個(gè)域中輸入多個(gè)值,但說(shuō)插入的值必須用逗號(hào)分隔
    語(yǔ)法:<input type="email" multiple>

  • Autofocus屬性
    Autofocus屬性會(huì)在網(wǎng)頁(yè)加載時(shí)自動(dòng)讓域獲得焦點(diǎn),相但與JavaScript中的focus()方法,適用于所有input元素
    語(yǔ)法:<input type="text" autofocus/>

  • Form屬性
    Form屬性是一個(gè)實(shí)用的附加功能,它可用于form標(biāo)簽之外聲明元素
    語(yǔ)法:

<form id="myform">
</form>
<input type="text" form="myform" name="uname"/>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市唠亚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌废士,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硫麻,死亡現(xiàn)場(chǎng)離奇詭異爸邢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)拿愧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門杠河,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人浇辜,你說(shuō)我怎么就攤上這事券敌。” “怎么了柳洋?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵待诅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我熊镣,道長(zhǎng)卑雁,這世上最難降的妖魔是什么募书? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮测蹲,結(jié)果婚禮上莹捡,老公的妹妹穿的比我還像新娘。我一直安慰自己扣甲,他們只是感情好篮赢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著琉挖,像睡著了一般启泣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粹排,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天种远,我揣著相機(jī)與錄音,去河邊找鬼顽耳。 笑死坠敷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的射富。 我是一名探鬼主播膝迎,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼胰耗!你這毒婦竟也來(lái)了限次?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柴灯,失蹤者是張志新(化名)和其女友劉穎卖漫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體赠群,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羊始,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了查描。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片突委。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冬三,靈堂內(nèi)的尸體忽然破棺而出匀油,到底是詐尸還是另有隱情,我是刑警寧澤勾笆,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布敌蚜,位于F島的核電站,受9級(jí)特大地震影響窝爪,放射性物質(zhì)發(fā)生泄漏钝侠。R本人自食惡果不足惜该园,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帅韧。 院中可真熱鬧里初,春花似錦、人聲如沸忽舟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)叮阅。三九已至刁品,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浩姥,已是汗流浹背挑随。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勒叠,地道東北人兜挨。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像眯分,于是被迫代替她去往敵國(guó)和親拌汇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容