<video>ï¼è§é¢åµå ¥å ç´
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
<video> HTML å
ç´ ç¨äºå¨ææ¡£ä¸åµå
¥åªä½ææ¾å¨ï¼ç¨äºæ¯æææ¡£å
çè§é¢ææ¾ãä½ ä¹å¯ä»¥å° <video> æ ç¾ç¨äºé³é¢å
容ï¼ä½æ¯ <audio> å
ç´ å¯è½å¨ç¨æ·ä½éªä¸æ´åéã
å°è¯ä¸ä¸
<video controls width="250">
<source src="/shared-assets/videos/flower.webm" type="video/webm" />
<source src="/shared-assets/videos/flower.mp4" type="video/mp4" />
Download the
<a href="/shared-assets/videos/flower.webm">WEBM</a>
or
<a href="/shared-assets/videos/flower.mp4">MP4</a>
video.
</video>
ä¸é¢çä¾åå±ç¤ºäº <video> å
ç´ çç®åç¨æ³ãå <img> å
ç´ ç使ç¨ç±»ä¼¼ï¼å¨ src 屿§éå å
¥ä¸ä¸ªæä»¬éè¦å±ç¤ºçè§é¢å°åï¼åæ¶ä¹å¯ä»¥ç¨å
¶ä»å±æ§æ¥æå®è§é¢ç宽度åé«åº¦ãæ¯å¦èªå¨æè
å¾ªç¯ææ¾ãæ¯å¦å±ç¤ºæµè§å¨é»è®¤çè§é¢æ§ä»¶çã
å¨ä¸æ¯æ video å
ç´ çæµè§å¨ä¸ï¼<video></video> æ ç¾ä¸é´çå
容伿¾ç¤ºï¼ä½ä¸ºé级å¤çã
屿§
ç±»ä¼¼äºææå ¶ä» HTML å ç´ ï¼æ¤å ç´ ä¹æ¯æå ¨å±å±æ§ã
autoplay-
ä¸ä¸ªå¸å°å±æ§ï¼å£°æè¯¥å±æ§åï¼è§é¢ä¼å°½å¿«èªå¨å¼å§ææ¾ï¼ä¸ä¼å䏿¥çå¾ æ°æ®å ¨é¨å è½½å®æã
夿³¨ï¼èªå¨ææ¾é³é¢ï¼ææå£°è§é¢ï¼å¯è½ä¼ç ´åç¨æ·ä½éªï¼æä»¥åºè¯¥å°½å¯è½é¿å ãå¦æä½ ä¸å®è¦æä¾èªå¨ææ¾åè½ï¼ä½ åºè¯¥å å ¥å¼å ³ï¼è®©ç¨æ·ä¸»å¨æå¼èªå¨ææ¾ï¼ãç¶èï¼å¦æéè¦å建ä¸äºåªä½å ç´ ï¼å ¶ææ¾æºç±ç¨æ·å¨ç¨å设置ï¼èªå¨ææ¾å°±ä¼å¾æç¨ãæ³äºè§£å¦ä½æ£ç¡®ä½¿ç¨èªå¨ææ¾ï¼å¯åè§æä»¬çèªå¨ææ¾æåã
æ æ³ä½¿ç¨
autoplay="false"æ¥å ³éè§é¢çèªå¨ææ¾åè½ï¼åªè¦<video>æ ç¾ä¸æè¿ä¸ªå±æ§ï¼è§é¢å°±ä¼èªå¨ææ¾ãè¦ç§»é¤èªå¨ææ¾ï¼éè¦å®å ¨å é¤è¯¥å±æ§ãå¨æäºæµè§å¨ï¼ä¾å¦ Chrome 70.0ï¼ä¸ï¼å¦ææ²¡æè®¾ç½®
muted屿§ï¼autoplay å°ä¸ä¼çæã controls-
妿åå¨è¯¥å±æ§ï¼æµè§å¨ä¼å¨è§é¢åºé¨æä¾ä¸ä¸ªæ§å¶é¢æ¿ï¼å è®¸ç¨æ·æ§å¶è§é¢çææ¾ï¼å æ¬é³éãæå¨è¿åº¦ãæåææ¢å¤ææ¾ã
controlslist-
彿µè§å¨æ¾ç¤ºè§é¢åºé¨çææ¾æ§å¶é¢æ¿ï¼ä¾å¦ï¼æå®äº
controls屿§ï¼æ¶ï¼controlslist屿§ä¼å¸®å©æµè§å¨éæ©å¨æ§å¶é¢æ¿ä¸æ¾ç¤ºåªäºvideoå ç´ æ§ä»¶ãå 许ç弿
nodownloadãnofullscreenånoremoteplaybackã妿è¦ç¦ç¨ç»ä¸ç»æ¨¡å¼ï¼åæ§ä»¶ï¼ï¼è¯·ä½¿ç¨
disablepictureinpicture屿§ã crossorigin-
该æä¸¾å±æ§æææ¯å¦ä½¿ç¨ CORS æ¥è·åç¸å ³è§é¢ãå 许 CORS çèµæºå¯å¨
<canvas>å ç´ ä¸è¢«éç¨ï¼èä¸ä¼è¢«æ±¡æãå 许çå¼å¦ä¸ï¼-
anonymous- : å¨åéè·¨æºè¯·æ±æ¶ä¸æºå¸¦åæ®ï¼credentialï¼ä¿¡æ¯ãä¹å°±æ¯è¯´ï¼æµè§å¨å¨åé
Origin:HTTP æ 头æ¶å°ä¸ä¼æºå¸¦ cookieãX.509 è¯ä¹¦ï¼ä¹ä¸ä¼æ§è¡ä»»ä½ HTTP åºæ¬èº«ä»½éªè¯ã妿æå¡å¨æ²¡æç»äºæºç«ç¹ä¿¡ä»»ï¼ä¹å°±æ¯è¯´æ²¡æè®¾ç½®Access-Control-Allow-Origin:HTTP æ 头ï¼ï¼èµæºä¼è¢«æ±¡æï¼å¹¶ä¸å®ç使ç¨ä¼åå°éå¶ã
- : å¨åéè·¨æºè¯·æ±æ¶ä¸æºå¸¦åæ®ï¼credentialï¼ä¿¡æ¯ãä¹å°±æ¯è¯´ï¼æµè§å¨å¨åé
-
use-credentials- : å¨åéè·¨æºè¯·æ±æ¶æºå¸¦åæ®ä¿¡æ¯ãä¹å°±æ¯è¯´ï¼æµè§å¨å¨åé
Origin:HTTP æ 头æ¶å°ä¼æºå¸¦ cookieãè¯ä¹¦ï¼ææ§è¡ HTTP åºæ¬èº«ä»½éªè¯ã妿æå¡å¨æ²¡æç»äºæºç«ç¹ä¿¡ä»»ï¼éè¿è®¾ç½®Access-Control-Allow-Credentials:HTTP æ 头ï¼ï¼å¾åä¼è¢«æ±¡æï¼å¹¶ä¸å®ç使ç¨ä¼åå°éå¶ã
ä¸å è¿ä¸ªå±æ§æ¶ï¼è·åèµæºä¸ä¼ä½¿ç¨ CORS 请æ±ï¼å³ä¸ä¼åé
Origin:HTTP è¯·æ±æ 头ï¼ï¼ä¿è¯å ¶å¨<canvas>å ç´ ä¸ä½¿ç¨æ¶ä¸ä¼è¢«æ±¡æã妿æå®æ æå¼ï¼ä¼è¢«å½ä½æå®äºæä¸¾å ³é®åanonymous䏿 ·ä½¿ç¨ãæ¥ç CORS è®¾ç½®å±æ§è·åæ´å¤ä¿¡æ¯ã - : å¨åéè·¨æºè¯·æ±æ¶æºå¸¦åæ®ä¿¡æ¯ãä¹å°±æ¯è¯´ï¼æµè§å¨å¨åé
-
disablepictureinpicture-
鲿¢æµè§å¨æ¾ç¤ºç»ä¸ç»ä¸ä¸æèåæå¨æäºæ åµä¸èªå¨è¯·æ±ç»ä¸ç»æ¨¡å¼ã
disableremoteplayback-
ä¸ä¸ªå¸å°å±æ§ï¼ç¨äºå¨ä½¿ç¨æçº¿ï¼HDMIãDVI çï¼åæ çº¿ææ¯ï¼MiracastãChromecastãDLNAãAirPlay çï¼è¿æ¥è®¾å¤æ¶ï¼ç¦ç¨è¿ç¨ææ¾åè½ã
å¨ Safari ä¸ï¼ä½ å¯ä»¥ä½¿ç¨
x-webkit-airplay="deny"ä½ä¸ºå åºæ¹æ¡ã height-
è§é¢æ¾ç¤ºåºåçé«åº¦ï¼å使¯ CSS åç´ ï¼ä» éç»å¯¹å¼ï¼ä¸æ¯æç¾åæ¯ï¼ã
loop-
ä¸ä¸ªå¸å°å±æ§ï¼æå®åä¼å¨è§é¢ææ¾ç»æçæ¶åï¼èªå¨è¿åè§é¢å¼å§çå°æ¹ï¼ç»§ç»ææ¾ã
muted-
ä¸ä¸ªå¸å°å±æ§ï¼ææå¨è§é¢ä¸é³é¢çé»è®¤è®¾ç½®ã设置åï¼é³é¢ä¼åå§å为éé³ãé»è®¤å¼æ¯ false, æå³çè§é¢ææ¾çæ¶åé³é¢ä¹ä¼ææ¾ã
playsinline-
ä¸ä¸ªå¸å°å±æ§ï¼ææè§é¢å°å åµï¼inlineï¼ææ¾ï¼å³å¨å ç´ çææ¾åºåå ã请注æï¼æ²¡ææ¤å±æ§å¹¶ä¸æå³çè§é¢å§ç»æ¯å ¨å±ææ¾çã
poster-
æµ·æ¥å¸§å¾ç URLï¼ç¨äºå¨è§é¢å¤äºä¸è½½ä¸çç¶ææ¶æ¾ç¤ºãå¦ææªæå®è¯¥å±æ§ï¼åå¨è§é¢ç¬¬ä¸å¸§å¯ç¨ä¹åä¸ä¼æ¾ç¤ºä»»ä½å 容ï¼ç¶åå°è§é¢ç第ä¸å¸§ä¼ä½ä¸ºæµ·æ¥ï¼posterï¼å¸§æ¥æ¾ç¤ºã
preload-
该æä¸¾å±æ§æ¨å¨æç¤ºæµè§å¨ï¼ä½è è®¤ä¸ºå¨ææ¾è§é¢ä¹åï¼å è½½åªäºå 容ä¼è¾¾å°æä½³çç¨æ·ä½éªãå¯è½æ¯ä¸åå¼ä¹ä¸ï¼
none: 表示ä¸åºè¯¥é¢å è½½è§é¢ãmetadata: è¡¨ç¤ºä» é¢å è·åè§é¢çå æ°æ®ï¼ä¾å¦é¿åº¦ï¼ãauto: 表示å¯ä»¥ä¸è½½æ´ä¸ªè§é¢æä»¶ï¼å³ä½¿ç¨æ·ä¸å¸æä½¿ç¨å®ã- 空å符串: ä¸
autoå¼ä¸è´ã
æ¯ä¸ªæµè§å¨çé»è®¤å¼é½ä¸ç¸åï¼å³ä½¿è§è建议设置为
metadataã夿³¨ï¼
autoplay屿§çä¼å 级æ¯preloadé«ã妿æå®äºautoplay屿§ï¼æµè§å¨æ¾ç¶éè¦å¼å§ä¸è½½è§é¢ä»¥ä¾¿åæ¾ã- è§è䏿²¡æå¼ºå¶æµè§å¨å»éµå¾ªè¯¥å±æ§çå¼ï¼è¿ä» ä» åªæ¯ä¸ªæç¤ºã
src-
è¦åµå°é¡µé¢çè§é¢ç URLãå¯éï¼ä½ ä¹å¯ä»¥ä½¿ç¨ video åå ç
<source>å ç´ æ¥æå®éè¦åµå°é¡µé¢çè§é¢ã width-
è§é¢æ¾ç¤ºåºåç宽度ï¼å使¯ CSS åç´ ï¼ä» éç»å¯¹å¼ï¼ä¸æ¯æç¾åæ¯ï¼ã
äºä»¶
| äºä»¶åç§° | è§¦åæ¶æº |
|---|---|
audioprocess
|
ScriptProcessorNode çè¾å
¥ç¼å²åºå·²åå¤å¥½è¿è¡å¤çã
|
canplay
|
æµè§å¨å¯ä»¥ææ¾åªä½ï¼ä½ä¼°è®¡å°æªç¼å²è¶³å¤çæ°æ®ï¼æ æ³æµç ææ¾è³è§é¢ç»æï¼æé´å¯è½åºç°å顿以便ç¼å²æ´å¤å 容ã |
canplaythrough
|
æµè§å¨ä¼°è®¡å®å¯ä»¥ä¸é´æå°ææ¾å°åªä½æ«å°¾ï¼æ éæå以è¿è¡å 容ç¼å²ã |
complete
|
å·²ç»æ¢ OfflineAudioContext çæ¸²æã
|
durationchange
|
duration 屿§å·²æ´æ°ã |
emptied
|
åªä½å
容已æ¸
空ï¼ä¾å¦ï¼å¦æåªä½å·²å è½½ï¼æé¨åå è½½ï¼å®æï¼å¹¶è°ç¨
load()
æ¹æ³éæ°å è½½ã
|
ended
|
è§é¢åæ¢ææ¾ï¼å 为åªä½å·²ç»å°è¾¾ç»æç¹ã |
error
|
è·ååªä½æ°æ®æ¶åºç°éè¯¯ï¼æè èµæºçæ ¼å¼ä¸åæ¯æã |
loadeddata
|
åªä½çé¦å¸§å·²å è½½å®æã |
loadedmetadata
|
å æ°æ®å·²å è½½å®æ¯ã |
loadstart
|
æµè§å¨å¼å§å è½½èµæºæ¶è§¦åã |
pause
|
ææ¾å·²æåã |
play
|
ææ¾å·²å¼å§ã |
playing
|
å·²ç»å¨æåæå æ°æ®ä¸è¶³èå»¶è¿ååå¤å¥½è¿è¡ææ¾ã |
progress
|
卿µè§å¨å è½½èµæºæé´å¨ææ§è§¦åã |
ratechange
|
ææ¾éçåçååã |
seeked
|
æå¨è¿åº¦ï¼seekï¼æä½å®æã |
seeking
|
æå¨è¿åº¦æä½å¼å§ã |
stalled
|
ç¨æ·ä»£çå°è¯è·ååªä½æ°æ®ï¼ä½æå¤å°æ æ³è·åæ°æ®ã |
suspend
|
åªä½æ°æ®å 载已æåã |
timeupdate
|
ç± currentTime 屿§æç¤ºçææ¾æ¶é´å·²æ´æ°ã
|
volumechange
|
é³éåçååã |
waiting
|
ç±äºææ¶ç¼ºå°æ°æ®èåæ¢ææ¾ã |
使ç¨è¯´æ
æµè§å¨å¹¶ä¸å
¨é½æ¯æç¸åçè§é¢æ ¼å¼ï¼ä½ å¯ä»¥å¨åµå¥ç <source> å
ç´ ä¸æä¾å¤ä¸ªåªä½æºï¼æµè§å¨ä¼ä½¿ç¨å®è½è¯å«ç第ä¸ä¸ªæºã
<video controls>
<source src="myVideo.mp4" type="video/mp4" />
<source src="myVideo.webm" type="video/webm" />
<p>
ä½ çæµè§å¨ä¸æ¯æ HTML5 è§é¢ãè¿éæä¸ä¸ª<a
href="myVideo.mp4"
download="myVideo.mp4"
>è§é¢</a
>龿¥ã
</p>
</video>
æä»¬æä¾äºä¸ä»½å ³äºåªä½æä»¶ç±»åæååè§é¢æ¯æçç¼è§£ç 卿åãæ¤å¤ï¼è¿æä¸ä»½å¯ä¸ä¹é å使ç¨çé³é¢ç¼è§£ç 卿åã
å ¶ä»ç使ç¨è¯´æï¼
- å¦æä½ ä¸æå®
controls屿§ï¼è§é¢å°ä¸ä¼å 嫿µè§å¨çé»è®¤æ§ä»¶ï¼ä½ å¯ä»¥ä½¿ç¨ JavaScript åHTMLMediaElementAPI æ¥åå»ºä½ èªå·±çæ§ä»¶ã详ç»ä¿¡æ¯è¯·åé å建跨æµè§å¨è§é¢ææ¾å¨ã - 为äºå®ç°å¯¹è§é¢ï¼åé³é¢ï¼å
容ç精确æ§å¶ï¼
HTMLMediaElementä¼è§¦åå¤ç§ä¸åçäºä»¶ï¼é¤äºæä¾å¯æ§æ§ä¹å¤ï¼è¿äºäºä»¶è¿å è®¸ä½ çæ§åªä½çä¸è½½è¿åº¦åææ¾è¿åº¦ï¼ä»¥åææ¾ç¶æåä½ç½®ã - ä½ å¯ä»¥ä½¿ç¨
object-position屿§è°æ´è§é¢å¨å ç´ æ¡å çä½ç½®ï¼å使ç¨object-fit屿§æ§å¶è§é¢å¦ä½è°æ´å¤§å°ä»¥éåºæ¡æ¶ã - 妿æ³å¨è§é¢éå±ç¤ºå广è
æ é¢ï¼ä½ å¯ä»¥å¨
<track>å ç´ å WebVTT æ ¼å¼çåºç¡ä¸ä½¿ç¨ JavaScript æ¥å®ç°ã详ç»ä¿¡æ¯è¯·åé å HTML è§é¢ä¸æ·»å åå¹ã - ä½ å¯ä»¥ä½¿ç¨
<video>å ç´ ææ¾é³é¢æä»¶ãå¦æä½ éè¦ç»å WebVTT åå¹è¿è¡é³é¢ææ¾ï¼è¿ä¼é常æç¨ï¼å 为<audio>å ç´ ä¸æ¯æä½¿ç¨ WebVTT æä¾åå¹ã - è¦å¨æ¯æè¯¥å
ç´ çæµè§å¨ä¸æµè¯åéå
容ï¼ä½ å¯ä»¥å°
<video>æ¿æ¢ä¸ºä¸åå¨çå ç´ ï¼å¦<notavideo>ã
å
³äºä½¿ç¨ HTML <video> å
ç´ ç综åä¿¡æ¯èµæºï¼è¯·åèè§é¢åé³é¢å
容åå¦è
æç¨ã
ä½¿ç¨ CSS è®¾ç½®æ ·å¼
<video> å
ç´ æ¯ä¸ä¸ªæ¿æ¢å
ç´ ââå
¶ display å¼é»è®¤ä¸º inlineï¼ä½å¨è§å£ä¸çé»è®¤å®½åº¦åé«åº¦ç±æåµå
¥çè§é¢å®ä¹ã
对 <video> å
ç´ è¿è¡æ ·å¼åå¹¶æ ç¹æ®èèï¼ä¸ç§å¸¸è§çç¥æ¯ä¸ºå
¶ display å¼èµä¸º blockï¼ä»¥æ¹ä¾¿å®ä½ãè°æ´å¤§å°çæä½ï¼ç¶åæ ¹æ®éè¦æä¾æ ·å¼åå¸å±ä¿¡æ¯ãè§é¢ææ¾å¨æ ·å¼åºç¡æä¾äºä¸äºæç¨çæ ·å¼åæå·§ã
æ£æµè½¨éæ·»å åç§»é¤
ä½ å¯ä»¥ä½¿ç¨ addtrack å removetrack äºä»¶æ£æµä½æ¶å <video> å
ç´ æ·»å æç§»é¤è½¨éã使¯ï¼è¿äºäºä»¶ä¸ä¼ç´æ¥åéå° <video> å
ç´ æ¬èº«ãç¸åï¼å®ä»¬ä¼åéå° <video> å
ç´ ç HTMLMediaElement å
对åºäºå该å
ç´ æ·»å ç轨éç±»åç轨éå表对象ï¼
HTMLMediaElement.audioTracks-
å å«åªä½å ç´ ææé³é¢è½¨éç
AudioTrackListãä½ å¯ä»¥å¨è¯¥å¯¹è±¡ä¸æ·»åaddtrackäºä»¶çå¬ï¼ä»¥ä¾¿å¨åå ç´ æ·»å æ°é³é¢è½¨éæ¶æ¶å°éç¥ã HTMLMediaElement.videoTracks-
å
VideoTrackList对象添å ä¸ä¸ªaddtrackçå¬å¨ï¼ä»¥ä¾¿å¨åå ç´ æ·»å è§é¢è½¨éæ¶æ¶å°éç¥ã HTMLMediaElement.textTracks-
å
TextTrackListæ·»å ä¸ä¸ªaddtrackäºä»¶çå¬å¨ï¼ä»¥ä¾¿å¨åå ç´ æ·»å æ°çææ¬è½¨éæ¶æ¶å°éç¥ã
ä¾å¦ï¼è¦æ£æµä½æ¶å <video> å
ç´ æ·»å æç§»é¤é³é¢è½¨éï¼ä½ å¯ä»¥ä½¿ç¨å¦ä¸ä»£ç ï¼
const elem = document.querySelector("video");
elem.audioTracks.onaddtrack = (event) => {
trackEditor.addTrack(event.track);
};
elem.audioTracks.onremovetrack = (event) => {
trackEditor.removeTrack(event.track);
};
è¿æ®µä»£ç çå¬å ç´ æ·»å åç§»é¤é³é¢è½¨éçæ åµï¼å¹¶è°ç¨è½¨éç¼è¾å¨ä¸çä¸ä¸ªåè®¾å½æ°ï¼ä»¥å°è½¨é注åå°ç¼è¾å¨å¯ç¨è½¨éåè¡¨ä¸æä»å表ä¸ç§»é¤ã
ä½ ä¹å¯ä»¥ä½¿ç¨ addEventListener() æ¥çå¬ addtrack å removetrack äºä»¶ã
è§é¢æå¡å¨æ¯æ
妿è§é¢ç MIME ç±»åè®¾ç½®ä¸æ£ç¡®ï¼è§é¢å¯è½ä¸ä¼æ¾ç¤ºï¼æè æ¾ç¤ºå å«ä¸ä¸ª X çç°è²çåï¼å¦æå¯ç¨äº JavaScript çè¯ï¼ã
å¦æä½ æä¾çè§é¢æ ¼å¼ä¸º Ogg Theora å¹¶å¨ Apache Web æå¡å¨ä¸ï¼ä½ å¯ä»¥éè¿â/etc/apacheâä¸çâmime.typesâæä»¶ï¼æè
éè¿å¨ httpd.conf ä¸ç "AddType" çé
ç½®æä»¤ï¼æè§é¢æä»¶çæ©å±åï¼æå¸¸è§çæ¯â.ogmâãâ.ogvâæâ.oggâï¼æ·»å å° MIME ç±»åâvideo/oggâï¼æ¥è§£å³è¿ä¸ªé®é¢ã
AddType video/ogg .ogm AddType video/ogg .ogv AddType video/ogg .ogg
å¦æä½ å¨ Apache Web æå¡å¨ä¸æä¾æ ¼å¼ä¸º WebM çè§é¢ï¼ä½ å¯ä»¥éè¿â/etc/apacheâä¸çâmime.typesâæä»¶ï¼æè
éè¿å¨ httpd.conf ä¸ç AddType é
ç½®æä»¤ï¼æè§é¢æä»¶çæ©å±åï¼æå¸¸è§çæ¯â.webmâï¼æ·»å å° MIME ç±»åâvideo/webmâï¼æ¥è§£å³è¿ä¸ªé®é¢ã
AddType video/webm .webm
ä½ ç Web 主æºå¯è½ä¼æä¾ä¸ä¸ªç®åçæ¥å£æ¥ä¿®æ¹ MIME ç±»åé ç½®ï¼ç´å°æå¡å¨å ¨é¢å级ã
示ä¾
>å个 source
è¿ä¸ªç¤ºä¾å¨æ¿æ´»æ¶ææ¾è§é¢ï¼å¹¶ä¸ºç¨æ·æä¾æµè§å¨é»è®¤çè§é¢æ§å¶ä»¥ç®¡çææ¾ã
HTML
<!-- ç®åè§é¢ç¤ºä¾ -->
<!-- â大éå
âç± Blender åºéä¼ä»¥ CC 3.0 许å¯ãç± archive.org æç®¡ã -->
<!-- æµ·æ¥æ¥èª peach.blender.org -->
<video
controls
src="https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4"
poster="https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217"
width="620">
æ±æï¼ä½ çæµè§å¨ä¸æ¯æåµå
¥å¼è§é¢ï¼ä¸è¿ä¸ç¨æ
å¿ï¼ä½ å¯ä»¥<a
href="https://archive.org/details/BigBuckBunny_124"
>ä¸è½½</a
>å¹¶ç¨ä½ æå欢çè§é¢ææ¾å¨è§çï¼
</video>
ç»æ
å¨è§é¢å¼å§ææ¾ä¹åï¼poster 屿§æä¾çå¾åå°ä»£æ¿æ¾ç¤ºã妿æµè§å¨ä¸æ¯æè§é¢ææ¾ï¼å伿¾ç¤ºåéææ¬ã
å¤ä¸ª source
æ¤ç¤ºä¾å¨ä¸ä¸ä¸ªç¤ºä¾çåºç¡ä¸æä¾äºä¸ç§ä¸åçåªä½æºï¼ä»è使è§é¢å¨ä»»ä½æµè§å¨æ¯æçè§é¢ç¼è§£ç å¨ç¯å¢ä¸é½è½è§çã
HTML
<!-- 使ç¨å¤ä¸ª sources ä½ä¸ºè§é¢æ ç¾çåé -->
<!-- âå¤§è±¡ä¹æ¢¦âç± Orange Open Movie Project å¶ä½ï¼éç¨ CC-3.0 许å¯ï¼ç± archive.org æç®¡-->
<!-- æµ·æ¥æ¥èªç»´åºç¾ç§ -->
<video
width="620"
controls
poster="https://upload.wikimedia.org/wikipedia/commons/e/e8/Elephants_Dream_s5_both.jpg">
<source
src="https://archive.org/download/ElephantsDream/ed_hd.ogv"
type="video/ogg" />
<source
src="https://archive.org/download/ElephantsDream/ed_hd.avi"
type="video/avi" />
<source
src="https://archive.org/download/ElephantsDream/ed_1024_512kb.mp4"
type="video/mp4" />
æ±æï¼ä½ çæµè§å¨ä¸æ¯æåµå
¥å¼è§é¢ï¼ä¸è¿ä¸ç¨æ
å¿ï¼ä½ å¯ä»¥<a
href="https://archive.org/download/ElephantsDream/ed_1024_512kb.mp4"
download="ed_1024_512kb.mp4">
ä¸è½½ MP4
</a>
å¹¶ç¨ä½ æå欢çè§é¢ææ¾å¨è§çï¼
</video>
ç»æ
é¦å å°è¯ Oggãå¦ææ æ³ææ¾ï¼åå°è¯ AVIãæåå°è¯ MP4ã妿æµè§å¨ä¸æ¯æè§é¢å ç´ ï¼å伿¾ç¤ºåéæ¶æ¯ï¼ä½å¦ææææºé½å¤±è´¥åä¸ä¼æ¾ç¤ºã
æäºåªä½æä»¶ç±»åå
è®¸ä½ ä½¿ç¨ codecs åæ°ä½ä¸ºæä»¶ç±»åå符串çä¸é¨åæ¥æä¾æ´å
·ä½çä¿¡æ¯ãä¸ä¸ªç¸å¯¹ç®åçä¾åæ¯ video/webm; codecs="vp8, vorbis"ï¼è¡¨ç¤ºè¯¥æä»¶æ¯ä¸ä¸ªä½¿ç¨ VP8 è§é¢å Vorbis é³é¢ç WebM è§é¢ã
æ éç¢èè
è§é¢åºæä¾è½åç¡®æè¿°å ¶å 容çåå¹åèæ¬ï¼è¯·åé å HTML è§é¢ä¸æ·»å åå¹ï¼äºè§£å¦ä½å®ç°è¿äºåè½çæ´å¤ä¿¡æ¯ï¼ãåå¹å¯ä»¥è®©å¬ååæçäººå¨ææ¾è§é¢æ¶çè§£è§é¢çé³é¢å 容ï¼èæå稿å¯ä»¥è®©éè¦æ´å¤æ¶é´ç人以èéçé度å形弿¥çé³é¢å 容ã
å¼å¾æ³¨æçæ¯ï¼è½ç¶å¯ä»¥ä¸ºçº¯é³é¢åªä½æ·»å åå¹ï¼ä½åªæå¨ <video> å
ç´ ä¸ææ¾é³é¢æ¶æè½è¿æ ·åï¼å 为该å
ç´ çè§é¢åºåæ¯ç¨æ¥æ¾ç¤ºåå¹çãè¿æ¯ä¸ç§ç¹æ®æ
åµï¼å¨è§é¢å
ç´ ä¸ææ¾é³é¢é常æç¨ã
å¦æä½¿ç¨èªå¨å广å¡ï¼åå¿ é¡»å¯¹çæçå 容è¿è¡å®¡æ¥ï¼ä»¥ç¡®ä¿å ¶åç¡®åç°æºè§é¢ã
é¤å£å¤´å¯¹è¯å¤ï¼åå¹åèæ¬è¿åºç¡®å®ä¼ è¾¾éè¦ä¿¡æ¯çé³ä¹å鳿ãè¿å æ¬æ æåè¯æ°ï¼
14 00:03:14 --> 00:03:18 [æå§æ§ææ»é³ä¹] 15 00:03:19 --> 00:03:21 [è³è¯] è¿å¤æ¯ä»ä¹ä¸è¥¿ï¼ 16 00:03:22 --> 00:03:24 è¿æ¯... è¿æ¯ä¸ä¸ª... 16 00:03:25 --> 00:03:32 [ç °ç °å·¨å] [ç¢ç¢ç¢°æå£°]
åå¹ä¸åºé®æ¡è§é¢ç主è¦ä¸»ä½ãå¯ä»¥ä½¿ç¨è®¾ç½® align VTT åå¹å对å
¶è¿è¡å®ä½ã
ææ¯æ¦è¦
| å 容åç±» |
æµå¼å
容ãçè¯å
容ãåµå
¥å
容ã妿宿 controls 屿§ï¼äº¤äºå
容å坿ç¥å
容ã
|
|---|---|
| å 许çå 容 |
妿å
ç´ æ¥æ
å¦åï¼å
许çå
容为 0 个æå¤ä¸ª |
| æ ç¾çç¥ | ä¸å 许ï¼å¼å§æ ç¾åç»ææ ç¾é½ä¸è½çç¥ã |
| å 许çç¶å ç´ | 任使¥ååµå ¥å 容çå ç´ ã |
| éå«ç ARIA è§è² | 没æå¯¹åºçè§è² |
| å 许ç ARIA è§è² | application |
| DOM æ¥å£ | HTMLVideoElement |
è§è
| è§è |
|---|
| HTML > # the-video-element > |