靴們上網(wǎng)的話都知道,現(xiàn)在很多網(wǎng)站都提供視頻展示。我們?cè)谏弦黄P(guān)于HTML5文章中提到了HTML5支持視頻和音頻,現(xiàn)在小編帶大家學(xué)習(xí)一下吧!
HTML5文件名同樣后綴'.html',我們?cè)趕ublime中可以使用輸入英文嘆號(hào)(!),然后按tab鍵就能創(chuàng)建一個(gè)簡(jiǎn)單的HTML5文件:
一個(gè)簡(jiǎn)單的html5文檔:
<video>標(biāo)簽定義視頻。如下:
control 屬性供添加播放、暫停和音量控件。
瀏覽器中顯示:
<video> 與 </video> 之間插入的內(nèi)容是供不支持 video 元素的瀏覽器顯示的:
我們?cè)贗E7中打開看一下效果:
1.autoplay屬性
Autoplay屬性用于設(shè)置視頻是否自動(dòng)播放,是一個(gè)布爾屬性。當(dāng)出現(xiàn)時(shí),表示自動(dòng)播放,去掉是表示不自動(dòng)播放。
<video src="video/Disney.mp4" controls="controls" autoplay="autoplay">你的瀏覽器版本不支持視頻</video>
2.loop屬性
loop屬性用于指定視頻是否循環(huán)播放,同樣是一個(gè)布爾屬性。
<video src="video/Disney.mp4" controls="controls" autoplay="autoplay" loop="loop">你的瀏覽器版本不支持視頻</video>
3.preload屬性
此屬性用于定義視頻是否預(yù)加載。屬性有三個(gè)可選擇的值:none、metadata、auto。如果不使用此屬性,默認(rèn)為auto。
如果使用 "autoplay",則忽略該屬性。
<video src="video/Disney.mp4" controls="controls" preload="none">你的瀏覽器版本不支持視頻</video>
None:不進(jìn)行預(yù)加載。使用此屬性值,可能是頁(yè)面制作者認(rèn)為用戶不期望此視頻,或者減少HTTP請(qǐng)求。
Metadata:部分預(yù)加載。使用此屬性值,代表頁(yè)面制作者認(rèn)為用戶不期望此視頻,但為用戶提供一些元數(shù)據(jù)(包括尺寸,第一幀,曲目列表,持續(xù)時(shí)間等等)。
Auto:全部預(yù)加載。
你必須非常努力,才能看起來(lái)毫不費(fèi)力!
關(guān)注小白前端,持續(xù)收到文章推送!
在剛接觸 p5.js 時(shí)我以為這只是一個(gè)藝術(shù)方向的 canvas 庫(kù),沒想到它還支持視頻文件和視頻流的播放。
本文簡(jiǎn)單講講如何使用 P5.js 播放視頻。
p5.js 除了可以使用 video 元素播放視頻外,還支持使用 image 控件播放視頻。
p5.js 的 createVideo() 方法可以創(chuàng)建一個(gè) <video> 元素。
createVideo(src, [callback]) 可以傳入2個(gè)參數(shù):
錄制 GIF 后比較卡,將就看著吧~
// 加載本地視頻
let playing=false // 播放狀態(tài)
let video=null // 視頻
let button=null // 按鈕
// 視頻加載完成的回調(diào)函數(shù)
function afterLoad() {
console.log('加載完成')
}
// 加載資源的生命周期
function preload() {
video=createVideo('assets/02.mp4', afterLoad)
}
// 初始化的生命周期
function setup() {
noCanvas()
button=createButton('播放')
button.mousePressed(toggleVid)
}
// 點(diǎn)擊按鈕的事件
function toggleVid() {
if (playing) {
video.pause()
button.html('播放')
} else {
video.loop()
button.html('暫停')
}
playing=!playing;
}
粗略講講上面這段代碼。
除了 video.loop() 方法,還可以使用 video.play() 播放視頻。loop 是循環(huán)播放;play 只播放一次,播完就暫停。
createVideo() 方法的第一個(gè)參數(shù)除了傳入一個(gè)字符串類型的視頻地址外,還可以傳入字符串?dāng)?shù)組,作用就是兼容處理。
比如你的視頻資源只有 2.mp4,你希望可以先播放 1.mp4,沒有這個(gè)視頻再播放 2.mp4,就可以這樣寫:
createVideo(['1.mp4', '2.mp4'])
但通常我們不會(huì)這樣寫,通常我們會(huì)給同一個(gè)視頻提供不同的視頻格式,然后用這種方法傳入多個(gè)視頻地址。
因?yàn)橛行g覽器不一定支持你想播放的地址,此時(shí)就可以做個(gè)保底處理。
使用 createVideo() 方法創(chuàng)建完視頻后,可以通過(guò) size(width, height) 設(shè)置視頻的寬高。
let video=null
function preload() {
video=createVideo('assets/02.mp4')
video.size(300, 600)
}
使用 createVideo() 創(chuàng)建的視頻控件可以使用 volume() 設(shè)置視頻的音量,該方法接受1個(gè)參數(shù),參數(shù)值在 0~1 之間。
let video=null
function preload() {
video=createVideo('assets/02.mp4', videoLoaded)
}
function videoLoaded() {
video.volume(0.5) // 將視頻音量設(shè)置為50%
}
一開始我也沒想到 image 控件可以播放視頻,誤打誤撞試出來(lái)的。
這次我就不錄屏了,工友們自己運(yùn)行試試看吧。
let playing=false
let video=null
let button=null
function preload() {
video=createVideo('assets/02.mp4')
}
function setup() {
video.hide()
createCanvas(568, 320)
button=createButton('播放')
button.mousePressed(toggleVid)
}
function draw() {
image(video, 0, 0)
}
function toggleVid() {
if (playing) {
video.pause();
button.html('播放');
} else {
video.loop();
button.html('暫停');
}
playing=!playing;
}
上面的代碼中,我在 setup() 里使用了 video.hide() 方法將 createVideo() 創(chuàng)建出來(lái)的 <video> 元素隱藏起來(lái),因?yàn)檫@次我們需要將視頻渲染到畫布中,所以不再需要 <video> 了。
接著我們?cè)?draw() 里用 image 不斷刷新視頻,所以上面這樣寫是對(duì)的。
其他地方?jīng)]變化。
如果你的設(shè)備有攝像頭,p5.js 是支持調(diào)用攝像頭并將內(nèi)容展示在畫布上的。
let capture
function setup() {
createCanvas(480, 360)
capture=createCapture(VIDEO)
capture.hide()
}
function draw() {
image(capture, 0, 0, capture.width, capture.height)
}
通過(guò) createCapture() 方法創(chuàng)建一個(gè)包含攝像頭的音頻/視頻源 <video> 元素,把這個(gè)元素的內(nèi)容放在 p5.js 的 image 控件里。
這個(gè)默認(rèn)是顯示的,而且它是一個(gè)獨(dú)立的元素,默認(rèn)和畫布分離。所以使用 capture.hide() 方法把 <video> 元素隱藏起來(lái),不然頁(yè)面中會(huì)出現(xiàn)兩個(gè)視頻窗口。
其他做法和前面的【方式2】差不多,這里就不再啰嗦了。
《p5.js 光速入門》
《p5.js 使用npm安裝p5.js后如何使用?》
《p5.js 變換操作》
《p5.js 3D圖形-立方體》
《p5.js 開發(fā)點(diǎn)彩畫派的繪畫工具》
《p5.js畫布操作實(shí)戰(zhàn):創(chuàng)建,綁定指定元素,動(dòng)態(tài)調(diào)整大小,隱藏滾動(dòng)條,刪除畫布》
點(diǎn)贊 + 關(guān)注 + 收藏=學(xué)會(huì)了
TML標(biāo)簽
基本標(biāo)簽
HTML頁(yè)面中內(nèi)容是由HTML標(biāo)簽組織起來(lái)的,如頁(yè)面中的文本、圖像、Flash視頻文件等都是通過(guò)HTML標(biāo)簽合理地顯示在頁(yè)面的各個(gè)位置。
1 標(biāo)題標(biāo)簽<h1>~<h6>
標(biāo)題標(biāo)簽表示一段文字的標(biāo)題(主題),并且支持多層次的內(nèi)容結(jié)構(gòu)。HTNL.共提供了6級(jí)標(biāo)題,分別為<h1>~<h6>,并賦予了標(biāo)題一定的外觀,所有標(biāo)題字體加粗,其中山<h1>字號(hào)最大,<h6>字號(hào)最小.
2.圖像標(biāo)簽<img>
在網(wǎng)頁(yè)中常用的圖像格式有4種,即JPG、GIF、BMP.PNG,其中使用比較多的是JPG、GIF和PNG,大多數(shù)瀏覽器都可以顯示這些圖像。
顯示圖像的語(yǔ)法:
< img src="ur1" alt="文本" width="x" height="y"/>
在語(yǔ)法中:
a、SrC屬性:表示顯示圖像的地址。
b、alt屬性:指定圖像的替代文本,當(dāng)圖像無(wú)法顯示時(shí)(如圖片路徑錯(cuò)誤或網(wǎng)速太慢等)替代顯示的文本,這樣,即使圖像無(wú)法顯示,用戶還可以看到網(wǎng)頁(yè)丟失的信息,所以為頁(yè)面上的圖像都加上替換文本屬性是個(gè)好習(xí)慣,這樣有助于更好地顯示信息,并且對(duì)于那些使用純文本瀏覽器的人來(lái)說(shuō)是非常有幫助的。
c、width屬性:表示圖像寬度.
d、height屬性:表示圖像高度。
3.段落標(biāo)簽<p>
顧名思義,段落標(biāo)簽表示將一段文字組成一系列段落內(nèi)容,這樣做的目的是內(nèi)容應(yīng)用某些格式和布局,使各個(gè)段落的邏輯更清晰明了。在HTML文檔中,段落通過(guò)<p>標(biāo)簽定義。段落標(biāo)簽<p>表示段落的開始,</p >表示段落的結(jié)束。
4.換行標(biāo)簽<br/>
在希望不產(chǎn)生一個(gè)新段落的情況下進(jìn)行換行,則使用<br>標(biāo)簽。<br>是一個(gè)空的HTML標(biāo)簽,由于關(guān)閉標(biāo)簽沒有任何意義,因此它沒有結(jié)束標(biāo)簽。
注意:
使用<b>和<br>的結(jié)果一樣,在XHTML以及未來(lái)的HTML版本中,根據(jù)W3C規(guī)范,不允許使用沒有結(jié)束標(biāo)簽的HTML元素,因此使用<br>頁(yè)面更規(guī)范,有更長(zhǎng)遠(yuǎn)的保障。
5.水平線標(biāo)簽<hr/>
水平線標(biāo)簽表示一條水平線,注意該標(biāo)簽與<br>標(biāo)簽一樣,沒有結(jié)束標(biāo)簽,直接使用<hr/>表示標(biāo)簽的開始和結(jié)束。
使用以上講解的基本標(biāo)簽,就可以進(jìn)行網(wǎng)頁(yè)內(nèi)容排版了。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。