視頻處理
在HTML5中播放視頻
- 在HTML5中播放視頻
1.HTML5中提到最多的就是視頻處理,視頻是互聯(lián)網(wǎng)中的重要應(yīng)用.在HTML5中,添加了一個新元素,以便在HTML文檔中插入和播放視頻,這個元素就是video元素
2.video元素提供了播放,暫停和音量控制來控制視頻,也提供了width 和height 屬性來控制視頻的尺寸
(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元素可以實現(xiàn)在HTML頁面中嵌入視頻內(nèi)容,該元素的屬性可以設(shè)置為是否自動播放,預(yù)加載及視頻高寬等
<video width="360" height="240" src="source/video.mp4">
視頻不能播放
</video>
src屬性:用于讀取媒體文件
autoplay屬性:設(shè)置該視頻是否自動播放
width 和height 屬性:設(shè)置該視頻的寬度和高度
2.video元素中可以使用source元素來向瀏覽器提供備選視頻格式
<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è)置這個屬性時,加載視頻后自動播放)
poster: 該屬性指定一個URL,在視頻等待播放時顯示一幅圖像
preload:該屬性可以設(shè)置三個值
1.none: 不緩存視頻,為了減少不必要的流量
2.metadata:播放前只加載視頻的高度,寬度和其他此類信息
3.auto:默認值,要求瀏覽器盡可能快的下載視頻
loop:設(shè)置這個屬性時,瀏覽器會反復(fù)播放該視頻
編程實現(xiàn)視頻播放器
- 事件
1.在不同的瀏覽器實現(xiàn)video代碼,播放器控件的圖形設(shè)計會有一些差別,每一種瀏覽器都有其特殊的按鈕和進度條,設(shè)置還有一些特殊的特性,為了讓各瀏覽器顯示效果保持一致,需要使用HTML5支持新的視頻事件,屬性和方法,來保持一致
2.HTML5加入了新的事件API.在視頻和音頻處理中,HTML5包含一些通知媒體狀態(tài)的事件,如下載進度,視頻是否結(jié)束等
3.下面是一些常用事件:
progress:用于更新媒體的下載進度,會周期性的觸發(fā)
conplaythrough:當(dāng)整個媒體可以順利播放時,就會觸發(fā)這個事件
conplay:不考慮整體狀態(tài),只要下載了一定的可放幀會觸發(fā)這個事件
ended:媒體到達末尾時觸發(fā)
pause:媒體暫停時觸發(fā)
play:媒體開始播放時觸發(fā)
error:媒體播放出現(xiàn)錯誤時觸發(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() 加載媒體文件,動態(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="開始";
}
}
- 屬性
html5新增的針對視頻元素的處理屬性如下:
paused 媒體處于暫?;蛭床顟B(tài),這個值為true
ended 如果媒體已經(jīng)結(jié)束播放,這個值為true
duration 返回媒體時長,以秒為單位
currentTime 獲取或設(shè)置媒體播放位置
音頻處理
在HTML5中播放音頻
- audio元素
audio元素可以實現(xiàn)在HTML頁面中嵌入音頻內(nèi)容,該元素的屬性可以設(shè)置是否播放,預(yù)加載及循環(huán)播放等
audio元素提供了播放,暫停,音量控件來控制音頻
- 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
語法結(jié)構(gòu):
<audio src="mp3/yellow.mp3" controls>
</audio>
或:
<audio controls>
<source src=
"mp3/yellow.mp3"/>
</audio>
audio元素支持一下屬性:
src:指定播放文件的URL,可通過<source>
controls:可激活各瀏覽器提供的默認頁面
autoplay: 加載音頻后自動播放
preload: 緩存設(shè)置
編程實現(xiàn)音頻播放器
- 事件,方法
HTML5媒體API支持視頻和音頻,視頻所支持的每一種事件,方法和屬性,音頻都有對應(yīng)的支持
常用事件:
ended
pause
play
常用方法:
play()
pause()
HTML5表單元素
表單簡介
無論是實現(xiàn)功能還是展示頁面元素,表單的HTML中都有不可代替的作用
在其他版本的HTML中,表單包含的元素非常有限,并且屬性也不多,尤其是在數(shù)據(jù)交互過程中數(shù)據(jù)的驗證需要編寫大量的JavaScript代碼
上述的不足,都已經(jīng)在HTML5中被克服了,HTML5在以上的基礎(chǔ)上增加了許多標簽以及屬性,為開發(fā)人員帶來方便
input類型
電子郵件類型
功能描述:輸入E-mail地址的文本框
語法:<input type="email"/>搜索類型
輸入搜索關(guān)鍵字操作的文本框
語法:<input type="search"/>URL類型
輸入Web站點地址的文本框
語法:<input type="url"/>電話號碼類型
主要針對電話號碼的輸入,能夠指示瀏覽器根據(jù)不同的設(shè)備進行調(diào)整
語法:<input type="tel"/>數(shù)字類型
只能接受數(shù)字值
語法:<input type="number"/>
屬性:
min:當(dāng)前域能接受的最小值
max:當(dāng)前域能接受的最大值
step:決定了域所接受值的遞增或遞減的步長.默認為1范圍類型
允許用戶選擇一個范圍的數(shù)值
語法:<input type="range" min="10" max="1000" value="50"/>
屬性:
min 范圍的下限值
max 范圍的上限值
step 聲明該值遞增或遞減的步長
value 設(shè)置初始值顏色類型
預(yù)定義顏色拾取控件
語法:<input type="color"/>日期類型
創(chuàng)建一個日期輸入域
語法:<input type="date"/>周類型
與data類似,但是只能選擇周
語法:<input type="week"/>月份類型
與data類型很相似,但是只能選擇一個月份
語法:<input type="month"/>日期與時間類型
支持輸入完整的時間和日期,包括時區(qū)
語法:<input type="datatime"/>
- 本地日期與時間類型
支持輸入完整的時間和日期,但不包括時區(qū)
語法:<input type="datatime-local"/>
新表單元素
- Datalist元素
<datalist>元素是一個表單特有的元素,它可以使用list屬性預(yù)創(chuà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>表示一個任務(wù)的完成進度,而且通常這些任務(wù)都在表單中啟動和處理
屬性:
Value:任務(wù)執(zhí)行的進度
Max:聲明任務(wù)完成后達到的值
<progress max="100" value="20"></progress>
- Meter元素
Meter元素可用于顯示刻度,而非進度
屬性:
min,max 設(shè)置范圍邊界
value 確定測量的值
low high optimum 將范圍劃分為不同的部分和設(shè)置最佳位置
<meter min="0" max="100 low="20" high="80" optimum="70"value="55"/>
- Output元素
1.Output元素通常用于顯示表單元素處理的結(jié)果值
屬性:
for 將output元素與參與計算的源元素相關(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表單屬性
屬性介紹
有一些輸入類型要求使用特定的屬性才能顯示效果,如前面提到過的min max step 其他輸入類型需要使用一些屬性來改進其他性能,或者決定驗證過程的重要性
HTML5標準中原來的基礎(chǔ)上增加了一些新的屬性:Placeholder屬性、Multiple屬性、Autofocus屬性、Form屬性
屬性詳解
Placeholder屬性
Placeholder屬性通常用于search輸入類型,也可以用在文本域,它表示一個簡單提示,單詞或詞匯,可用于幫助用戶輸入正確的內(nèi)容.該屬性能夠在文本域的內(nèi)部顯示一些內(nèi)容
語法:<input type="text" placeholder="請輸入用戶名稱">Multiple屬性
Multiple屬性可以用在一些輸入類型中(email file等)
從而支持在一個域中輸入多個值,但說插入的值必須用逗號分隔
語法:<input type="email" multiple>Autofocus屬性
Autofocus屬性會在網(wǎng)頁加載時自動讓域獲得焦點,相但與JavaScript中的focus()方法,適用于所有input元素
語法:<input type="text" autofocus/>Form屬性
Form屬性是一個實用的附加功能,它可用于form標簽之外聲明元素
語法:
<form id="myform">
</form>
<input type="text" form="myform" name="uname"/>