HTML <video> åç»åãè¾¼ã¿è¦ç´
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã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> ã¿ã°ã®éã®å
容ã¯ããã®è¦ç´ ã«å¯¾å¿ãã¦ããªããã©ã¦ã¶ã¼ã§ä»£æ¿ã¨ãã¦è¡¨ç¤ºããã¾ãã
屿§
ä»ã®ãã¹ã¦ã® HTML è¦ç´ ã¨åæ§ã«ããã®è¦ç´ ã¯ã°ãã¼ãã«å±æ§ã«å¯¾å¿ãã¦ãã¾ãã
autoplay-
è«ç屿§ã§ãããã®å±æ§ãæå®ãããå ´åããã¼ã¿ã®èªã¿è¾¼ã¿ãå®äºããåçå¯è½ãªç¶æ ã«ãªã£ãæç¹ã§å³åº§ã«ã³ã³ãã³ãã®åçãå§ã¾ãã¾ãã
ã¡ã¢: ç¾è¡ã®ãã©ã¦ã¶ã¼ã§ã¯ãé³å£°ï¼ã¾ãã¯ãã¥ã¼ãããã¦ããªãé³å£°ãã©ãã¯ä»ãã®åç»ï¼ãèªååçãããªãããã«è¨å®ããã¦ãã¾ããããã¯ãèªåçã«é³å£°ãåçããããµã¤ãã¯ã¦ã¼ã¶ã¼ã«ã¨ã£ã¦ä¸å¿«ãªä½é¨ã«ãªãå¾ãããã§ããæ£ããèªååçã®ä½¿ãæ¹ã«ã¤ãã¦ã®è¿½å æ å ±ã¯ autoplay ã¬ã¤ããåç §ãã¦ãã ããã
åç»ã®èªååçãç¡å¹ã«ããããã«
autoplay="false"ãæå®ãã¦ãæ©è½ãã¾ããã<video>ã¿ã°ã«ãã®å±æ§ãããã°ãåç»ãèªåçã«åçããã¾ããèªååçãç¡å¹ã«ããã«ã¯ã屿§ãå®å ¨ã«åãé¤ããã¨ãå¿ è¦ã§ããã¡ã¢:
loading="lazy"屿§ãè¨å®ãããåç»ã¯ããã®è¦ç´ ããã¥ã¼ãã¼ãã®è¿ãã¾ãã¯ãã¥ã¼ãã¼ãå ã«è¡¨ç¤ºãããã¾ã§ããã¦ã³ãã¼ããèªååçãéå§ããã¾ããã controls-
ãã®å±æ§ãæå®ãããå ´åãåçãé³éãã·ã¼ã¯ããã¼ãºã®åæ©è½ãå¶å¾¡ããã³ã³ããã¼ã«ã表示ãã¾ãã
controlslist-
controlslist屿§ãæå®ããã¦ããã¨ããã©ã¦ã¶ã¼èªèº«ã®ã³ã³ããã¼ã«ã®ã»ããã表示ããå ´åï¼ä¾ãã°controls屿§ãè¨å®ããã¦ããå ´åï¼ãvideoè¦ç´ ã«è¡¨ç¤ºããã³ã³ããã¼ã«ã鏿ããã®ãè£å©ãã¾ããæå®ã§ããå¤ã¯
nodownload,nofullscreen,noremoteplaybackã§ããdisablepictureinpicture屿§ã使ç¨ããã¨ããã¯ãã£ã¤ã³ãã¯ãã£ã¢ã¼ãï¼ããã³ã³ã³ããã¼ã«ï¼ãç¡å¹ã«ãããã¨ãã§ãã¾ãã crossorigin-
åæåã®å±æ§ã§ãé¢é£ç»åãåå¾ããéã« CORS ã使ç¨ãããã©ããã示ãã¾ãã CORS ãæå¹ãªãªã½ã¼ã¹ã¯ãæ±æããããã¨ãªã
<canvas>è¦ç´ ã§åå©ç¨ãããã¨ãã§ãã¾ãã許å¯ãããå¤ã¯æ¬¡ã®éãã§ããanonymous-
è³æ ¼æ å ±ãªãã§ãªãªã¸ã³éãªã¯ã¨ã¹ããå®è¡ãã¾ããããªãã¡ã
Origin:HTTP ãããã¼ãéä¿¡ããéã«ã Cookie ã X.509 è¨¼ææ¸ãéä¿¡ãããã HTTP ãã¼ã·ãã¯èªè¨¼ãè¡ã£ãããã¾ããããµã¼ãã¼ãå ã®ãµã¤ãã«è³æ ¼æ å ±ãä»ä¸ããªãå ´å (Access-Control-Allow-Origin:HTTP ãããã¼ã®è¨å®ãªã)ããªã½ã¼ã¹ãæ±æããããã®ä½¿ç¨ãå¶éããã¾ãã 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 ãã¯ã»ã«å¤ã§æå®ãã¾ãï¼çµ¶å¯¾çãªå¤ã«éãã¾ãããã¼ã»ã³ãå¤ã¯ä¸å¯ï¼ã
loading-
ãã©ã¦ã¶ã¼ãåç»ï¼ãã¹ã¿ã¼ç»åãå«ãï¼ãã©ã®ããã«èªã¿è¾¼ãã¹ãããæå®ãã¾ãã
eager-
åç»ãç¾å¨è¡¨ç¤ºé åå ã«ãããã©ããã«é¢ä¿ãªããããã«åç»ãèªã¿è¾¼ã¿ã¾ãï¼ãããããã©ã«ãå¤ã§ãï¼ã
lazy-
ãã©ã¦ã¶ã¼ã®å®ç¾©ã«å¾ããåç»ããã¥ã¼ãã¼ãããè¨ç®ãããè·é¢ã«éããã¾ã§ãåç»ã®èªã¿è¾¼ã¿ãé å»¶ããã¾ãã
é å»¶èªã¿è¾¼ã¿ã«ãããåç»ãå¿ è¦ã«ãªãã¨ã»ã¼ç¢ºå®ã«ãªãã¾ã§ããã®å¦çã«å¿ è¦ãªãããã¯ã¼ã¯å¸¯åå¹ ãã¹ãã¬ã¼ã¸å¸¯åå¹ ãç¯ç´ã§ãã¾ããããã«ãããä¸è¬çãªä½¿ç¨ã±ã¼ã¹ã®ã»ã¨ãã©ã«ããã¦ããã©ã¼ãã³ã¹ãåä¸ãã¾ãã
ã¬ã¤ã¢ã¦ãã®ãããé²ãããããã¹ã¦ã®åç»ã«å¯¾ãã¦æç¤ºçãª
widthããã³height屿§ã®ä½¿ç¨ãæ¨å¥¨ããã¾ããããããã¯ç¹ã«é å»¶èªã¿è¾¼ã¿ãããåç»ã«ããã¦éè¦ã§ããé å»¶èªã¿è¾¼ã¿ãããåç»ã¯ããã¨ãèªã¿è¾¼ã¿ã«ãã£ã¦è¡¨ç¤ºç¶æ ãå¤åããã¨ãã¦ããè¦ç´ ã®è¡¨ç¤ºé åã¨éãªããªãéãèªã¿è¾¼ã¾ãã¾ãããããã¯ãèªã¿è¾¼ã¾ãã¦ããªãåç»ã®widthã¨heightã0ã§ããããã§ããèªã¿è¾¼ã¿ä¸ã«ãã¥ã¼ãã¼ãå ã®ã³ã³ãã³ããåé ç½®ãããã¨ãã¦ã¼ã¶ã¼ä½é¨ã«ããã«å¤§ããªæ¯éãããããã¨ã«ãªãã¾ããè¦è¦çãªãã¥ã¼ãã¼ãå ã«ããé å»¶èªã¿è¾¼ã¿ã®åç»ã¯ãWindow ã®
loadã¤ãã³ããçºçããæç¹ã§ã¯ã¾ã 表示ããã¦ããªãå¯è½æ§ãããã¾ããããã¯ããã®ã¤ãã³ãã峿èªã¿è¾¼ã¿ã®åç»ã«åºã¥ãã¦çºçããããã§ããã¤ã¾ãããã¼ã¸ã®åæèªã¿è¾¼ã¿æã«è¦è¦çãªãã¥ã¼ãã¼ãå ã«ãã£ãã¨ãã¦ããé å»¶èªã¿è¾¼ã¿ã®åç»ã¯èæ ®ããã¾ãããèªã¿è¾¼ã¿ã®é å»¶ã¯ãJavaScriptãæå¹ãªå ´åã«ã®ã¿è¡ããã¾ããããã¯ãã©ããã³ã°å¯¾çã®ä¸ç°ã§ãããªããªããã¹ã¯ãªãããç¡å¹ãªç¶æ ã§ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããé å»¶èªã¿è¾¼ã¿ã«å¯¾å¿ãã¦ãã¦ãããµã¼ãã¼ãåç»ã®ãªã¯ã¨ã¹ãæ°ãã¿ã¤ãã³ã°ã追跡ã§ããããã«ããã¼ã¸ã®ãã¼ã¯ã¢ããå ã«åç»ãæ¦ç¥çã«é ç½®ãããã¨ã§ããµã¤ãå´ãã»ãã·ã§ã³å ¨ä½ãéãã¦ã¦ã¼ã¶ã¼ã®ã¹ã¯ãã¼ã«ä½ç½®ã®ããããã®ä½ç½®ã追跡ã§ãã¦ãã¾ãå¯è½æ§ãããããã§ãã
loop-
è«çåã®å±æ§ã§ããæå®ãããå ´åããã©ã¦ã¶ã¼ã¯åç»ã®æ«å°¾ã«éããã¨ãèªåçã«å é ã«æ»ãã¾ãã
muted-
è«çåã®å±æ§ã§ãåç»ã«å«ã¾ããé³å£°ãæ¶é³ãããã©ããã®æ¢å®ã®è¨å®ã示ãã¾ãããã®å±æ§ãè¨å®ããã¨ãåæç¶æ ãæ¶é³ã«ãªãã¾ããããã©ã«ãå¤ã¯
falseã§ãããåç»åçæã«é³å£°ãèããããã¨ã表ãã¾ããã¡ã¢: ãã¥ã¼ããè§£é¤ããã«ã¯ã
muted="false"ãè¨å®ãã¦ãåä½ãã¾ããããã®å±æ§ãåå¨ãã¦ããéããé³å£°ã¯ãã¥ã¼ããããã¾ã¾ã«ãªãã¾ãããã¥ã¼ããè§£é¤ããã«ã¯ããã®å±æ§ãå®å ¨ã«é¤å»ããªããã°ãªãã¾ããã playsinline-
è«ç屿§ã§ãåç»ããã¤ã³ã©ã¤ã³ãã§åçãããããªãã¡è¦ç´ ã®åçé åå ã§åçããããæå®ãã¾ãããã®å±æ§ããªããã¨ããåç»ã常ã«å ¨ç»é¢ã§åçããã¨ããæå³ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã
poster-
åç»ã®ãã¦ã³ãã¼ãä¸ã«è¡¨ç¤ºãããç»åã® URL ã§ãããã®å±æ§ãæå®ãããªãå ´åãæåã®ãã¬ã¼ã ãå©ç¨å¯è½ã«ãªãã¾ã§ä½ã表示ãããããã®å¾ãæåã®ãã¬ã¼ã ããã¹ã¿ã¼ãã¬ã¼ã ã¨ãã¦è¡¨ç¤ºãã¾ãã
ã¡ã¢:
loading="lazy"屿§ãè¨å®ãããåç»ã¯ãåç»ããã¥ã¼ãã¼ãã®è¿ãã¾ãã¯ãã¥ã¼ãã¼ãå ã«è¡¨ç¤ºãããæç¹ã§åãã¦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-
ã·ã¼ã¯æä½ãå®äºããã
seeking-
ã·ã¼ã¯æä½ãå§ã¾ã£ãã
stalled-
ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããã¡ãã£ã¢ãèªã¿è¾¼ããã¨ãã¦ãããããã¼ã¿ãäºæããã«å ¥ã£ã¦ããªãã
suspend-
ã¡ãã£ã¢ãã¼ã¿ã®èªã¿è¾¼ã¿ã忢ããã
timeupdate-
currentTime屿§ã§ç¤ºããã¦ããæå»ãæ´æ°ãããã volumechange-
é³éã夿´ãããã
waiting-
䏿çãªãã¼ã¿ã®ä¸è¶³ã«ãããåçã忢ããã
使ç¨ä¸ã®æ³¨æ
ãã©ã¦ã¶ã¼ã¯åãåç»å½¢å¼ã«ãã¹ã¦å¯¾å¿ãã¦ããã¨ã¯éãã¾ãããå
é¨ã® <source> è¦ç´ ã§è¤æ°ã®ã½ã¼ã¹ãæä¾ãããã¨ãã§ãããã©ã¦ã¶ã¼ã¯çè§£ã§ããæåã®ãã®ã使ç¨ãã¾ãã
<video controls>
<source src="myVideo.webm" type="video/webm" />
<source src="myVideo.mp4" type="video/mp4" />
<p>
ãã®ãã©ã¦ã¶ã¼ã¯ HTML ã®åç»ã«å¯¾å¿ãã¦ãã¾ããã代ããã«<a href="myVideo.mp4" download="myVideo.mp4">åç»ã¸ã®ãªã³ã¯</a>ãããã¾ãã
</p>
</video>
<source> è¦ç´ ã使ç¨ããå ´åããã©ã¦ã¶ã¼ã¯åã½ã¼ã¹ãé çªã«èªã¿è¾¼ããã¨ãã¾ããããã½ã¼ã¹ã®èªã¿è¾¼ã¿ã«å¤±æããå ´åï¼ç¡å¹ãª URL ãé対å¿ã®å½¢å¼ãªã©ï¼ã¯ã次ã®ã½ã¼ã¹ã®èªã¿è¾¼ã¿ã試ã¿ããããã®ç¹°ãè¿ãã¨ãªãã¾ãããã¹ã¦ã®ã½ã¼ã¹ã®èªã¿è¾¼ã¿ã«å¤±æããå¾ã<video> è¦ç´ ã«å¯¾ã㦠error ã¤ãã³ããçºçãã¾ããåã
ã® <source> è¦ç´ ã«å¯¾ãã¦ã¯ãerror ã¤ãã³ãã¯çºçãã¾ããã
ã¡ãã£ã¢ãã¡ã¤ã«å½¢å¼ããåç»ã§å¯¾å¿ãã¦ããã³ã¼ããã¯ãªã©ãå®è³ªçãã¤å¾¹åºããã¬ã¤ããæä¾ãã¦ãã¾ããã¾ããä¸ç·ã«å©ç¨ãããã¨ãã§ããé³å£°ã³ã¼ããã¯ã®ã¬ã¤ããããã¾ãã
ãã®ä»ã®å©ç¨ä¸ã®æ³¨æ:
controls屿§ãæå®ããªãã¨ã video ã¯ãã©ã¦ã¶ã¼ã®æ¨æºã®ã³ã³ããã¼ã«ãå«ãã¾ããã JavaScript ã¨HTMLMediaElementã使ç¨ãã¦ãç¬èªã®ã³ã³ããã¼ã«ã使ãããã¨ãã§ãã¾ãã詳ããã¯ã¯ãã¹ãã©ã¦ã¶ã¼ã®åç»ãã¬ã¤ã¤ã¼ã®ä½æãåç §ãã¦ãã ããã- åç»ï¼ããã³é³å£°ï¼ã³ã³ãã³ãã詳細ã«å¶å¾¡ã§ããããã
HTMLMediaElementã¯ããããã®ç¨®é¡ã®ã¤ãã³ããçºè¡ãã¾ãããããã®ã¤ãã³ãã¯ãå¶å¾¡ãå¯è½ã«ããã ãã§ãªããã¡ãã£ã¢ã®ãã¦ã³ãã¼ãã¨åçã®ä¸¡æ¹ã®é²è¡ç¶æ³ãåçç¶æ ãåçä½ç½®ãç£è¦ãããã¨ãã§ãã¾ãã object-positionããããã£ãç¨ãã¦ãè¦ç´ ã®æ å ã§ã®åç»ã®ä½ç½®ã調æ´ãããã¨ãã§ããobject-fitããããã£ãç¨ãã¦åç»ã®å¯¸æ³ãã©ã®ããã«æ å ã«åãããããããå¶å¾¡ãããã¨ãã§ãã¾ãã- åç»ã¨åæã«åå¹ã表示ããã«ã¯ã JavaScript ã¨å
±ã«
<track>è¦ç´ 㨠WebVTT ã使ç¨ãã¾ãã詳ããã¯ã HTML åç»ã¸ã®åå¹ã®è¿½å ãã覧ãã ããã <video>è¦ç´ ã使ã£ã¦é³å£°ãã¡ã¤ã«ãåçãããã¨ãã§ãã¾ããä¾ãã° WebVTT ã®ä»£æ¿è¡¨è¨ãä¼´ãé³å£°ãåçãããå ´åãªã©ã«ã<audio>è¦ç´ 㯠WebVTT ã使ã£ãåå¹ã許å¯ãã¦ããªããã便å©ã§ãã- è¦ç´ ã«å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã§ä»£æ¿ã³ã³ãã³ãããã¹ãããã«ã¯ã
<video>ã<notavideo>ã®ãããªå®å¨ããªãã¿ã°ã«ç½®ãæãã¦ãã ããã
HTML ã® <video> ã®ä½¿ç¨ã«ã¤ãã¦ä¸è¬çãªè¯ãæ
å ±æºã¨ãã¦ãåç»ããã³é³å£°ã³ã³ãã³ãã®åå¿è
åããã¥ã¼ããªã¢ã«ãããã¾ãã
CSS ã§ã®ã¹ã¿ã¤ã«ä»ã
<video> è¦ç´ ã¯ç½®æè¦ç´ ã§ãã â display ã®å¤ã¯æ¢å®ã§ inline ã§ããããã¥ã¼ãã¼ãã®æ¢å®ã®å¹
ã¨é«ãã¯åãè¾¼ã¾ããåç»ã§å®ç¾©ããã¾ãã
<video> ã®ã¹ã¿ã¤ã«ä»ãã«ã¤ãã¦ãç¹å¥ãªèæ
®äºé
ã¯ããã¾ãããããããæ¦ç¥ã¨ãã¦ãä½ç½®ã寸æ³ãè¨å®ããããããå¿
è¦ã«å¿ãã¦ã¹ã¿ã¤ã«ãã¬ã¤ã¢ã¦ãæ
å ±ãæä¾ããããã« display ã®å¤ã block ã«è¨å®ãããã¨ã§ããåç»ãã¬ã¤ã¤ã¼ã®ã¹ã¿ã¤ã«ä»ãã®åºæ¬ã¯ã便å©ãªã¹ã¿ã¤ã«ä»ããã¯ããã¯ãããã¤ãç´¹ä»ãã¦ãã¾ãã
åå¹ããã®ä»ã®ã¿ã¤ãã³ã°ããã¹ããã©ãã¯ã追å
åå¹ãã¯ãã¼ãºããã£ãã·ã§ã³ããã£ãã¿ã¼è¦åºãããªã©ã¨ãã£ãã¿ã¤ãã³ã°ãæå®ããããã¹ããã©ãã¯ã¯ã<track> è¦ç´ ããã¹ããããã¨ã§å®£è¨çã«è¿½å ãããã¨ãã§ãã¾ãã
ãã©ãã¯ã¯ãã¦ã§ãåç»ããã¹ããã©ãã¯å½¢å¼ (WebVTT) (.vtt ãã¡ã¤ã«) ã§æå®ãã¾ãã
ä¾ãã°ã次㮠HTML ã§ã¯ "captions.vtt" ã¨ãããã¡ã¤ã«ãåãè¾¼ãã§ãã¾ãããã®ãã¡ã¤ã«ã¯ãã¦ã¼ã¶ã¼ãåå¹ãæå¹ã«ããå ´åã«åç»ã«åå¹ããªã¼ãã¼ã¬ã¤è¡¨ç¤ºããããã«ä½¿ç¨ãã¾ãã
<video controls src="video.webm">
<track default kind="captions" src="captions.vtt" />
</video>
WebVTT API ã使ç¨ãã¦ãæéæå®ããã¹ããã©ãã¯ãããã°ã©ã ã§è¿½å ãããã¨ãã§ãã¾ãã
ãã©ãã¯ã®è¿½å ã¨åé¤ã®æ¤åº
<video> è¦ç´ ã§ãã©ãã¯ã追å ããããåé¤ãããããããã¨ãæ¤åºããã«ã¯ã addtrack ããã³ removetrack ã¤ãã³ãå©ç¨ãããã¨ãã§ãã¾ãããããããããã®ã¤ãã³ã㯠<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 ãæå¹ã§ããå ´åï¼å¯è½æ§ãããã¾ãã
Apache Web Server ã使ç¨ã㦠WebM åç»ãé
ä¿¡ããå ´åãvideo/webm MIME ã¿ã¤ãã«åç»ãã¡ã¤ã«ã®æ¡å¼µåã追å ãããã¨ã§ããã®åé¡ãä¿®æ£ããã¾ãï¼WebM ãã¡ã¤ã«ã®æãä¸è¬çãªæ¡å¼µå㯠.webm ã§ãï¼ããããè¡ãã«ã¯ã/etc/apache ã® mime.types ãã¡ã¤ã«ãç·¨éããããhttpd.conf ã® AddType æ§æãã£ã¬ã¯ãã£ãã使ç¨ãã¾ãã
AddType video/webm .webm
ã¦ã§ããã¹ãã£ã³ã°ãµã¼ãã¹ã§ã¯ãå ¨ä½ã®æ´æ°ãè¡ãããã¾ã§ã®éãæ°æè¡åãã« MIME ã¿ã¤ãã®è¨å®ã夿´ããããã®ç°¡åãªã¤ã³ã¿ã¼ãã§ã¤ã¹ãæä¾ãã¦ããããããã¾ããã
ã¢ã¯ã»ã·ããªãã£
åç»ã«ã¯ãå®éã«ã³ã³ãã³ãã説æããåå¹ã¨æååæ å ± (transcript) ãæä¾ããã¹ãã§ãï¼å®è£ æ¹æ³ã«ã¤ãã¦è©³ãã㯠HTML åç»ã¸ã®åå¹ã®è¿½å ãåç §ãã¦ãã ããï¼ãåå¹ã«ãã£ã¦ãè´åã失ã£ã人ãåç»ã®åçæã«é³å£°ã®å 容ãçè§£ããäºãã§ããããã«ãªãã®ã«å¯¾ããæååæ å ±ã使ç¨ããã¨ãé³å£°ã³ã³ãã³ããçè§£ããã®ã«æéãæãã人ããèªåã«åã£ããã¼ã¹ã¨æ¸å¼ã§å 容ã確èªã§ããããã«ãªãã¾ãã
注ç®ãã¹ãç¹ã¯ãé³å£°ã®ã¿ã®ã¡ãã£ã¢ã«ãã£ãã·ã§ã³ãä»ãããã¨ã¯ã§ãã¾ããããã£ãã·ã§ã³ã表示ããããã«è¦ç´ ã®åç»é åã使ç¨ãããããã <video> è¦ç´ ã§é³å£°ãåçããªãã¨ãã£ãã·ã§ã³ãä»ãããã¨ãã§ããªãã¨ãããã¨ã§ããããã¯ã video è¦ç´ ã§é³å£°ãåçããã®ã«ä¾¿å©ãªç¹å¥ãªã·ããªãªã® 1 ã¤ã§ãã
èªååå¹ãµã¼ãã¹ã使ç¨ããã¦ããå ´åã¯ãçæãããã³ã³ãã³ããå ã®åç»ãæ£ãã表ç¾ãã¦ãããã確èªãããã¨ãéè¦ã§ãã
åå¹ãæååæ å ±ã§ã¯ã話ãããã»ãªãã«å ãã¦ãéè¦ãªæ å ±ãä¼ãã鳿¥½ãé³é¿å¹æãèå¥ã§ããããã«ãã¦ãã ãããããã«ã¯ææ ãå£èª¿ãå«ã¿ã¾ãã
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 ãã¥ã¼è¨å®ã使ç¨ãã¦ä½ç½®ã決ãããã¨ãã§ãã¾ãã
ä¾
>åä¸ã®ã½ã¼ã¹
ãã®ä¾ã§ã¯ãã¢ã¯ãã£ãåãããã¨ãã«åç»ãåçããåçãå¶å¾¡ããããã«ãã©ã¦ã¶ã¼ã®æ¢å®ã®åç»ã³ã³ããã¼ã«ãã¦ã¼ã¶ã¼ã«æä¾ãã¾ãã
HTML
<!-- Basic video example -->
<!-- 'Big Buck Bunny' licensed under CC 3.0 by the Blender foundation. Hosted by archive.org -->
<!-- Poster from 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 屿§ã§æå®ãããç»åããã®å ´æã«è¡¨ç¤ºããã¾ãããã©ã¦ã¶ã¼ãåç»ã®åçã«å¯¾å¿ãã¦ããªãå ´åã¯ã代æ¿ããã¹ãã表示ãã¾ãã
è¤æ°ã®ã½ã¼ã¹
ãã®ä¾ã¯ãã¡ãã£ã¢ã® 3 ã¤ã®ç°ãªãã½ã¼ã¹ãæä¾ããæå¾ã®ãã®ããã¼ã¹ã«ãã¦ãã¾ããããã«ããããã©ã¦ã¶ã¼ã§å¯¾å¿ãã¦ããåç»ã³ã¼ããã¯ã«é¢ä¿ãªããåç»ãè¦ããã¨ãã§ãã¾ãã
HTML
<!-- Using multiple sources as fallbacks for a video tag -->
<!-- 'Elephants Dream' by Orange Open Movie Project Studio, licensed under CC-3.0, hosted by archive.org -->
<!-- Poster hosted by Wikimedia -->
<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.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>
çµæ
ã¯ããã« AVI ã試ãã¾ããåçã§ããªãå ´åã¯ã MP4 ã試ãã¾ããvideo è¦ç´ ã«å¯¾å¿ãã¦ããªãå ´åã¯ä»£æ¿ã¡ãã»ã¼ã¸ã表示ãã¾ããããã¹ã¦ã®ã½ã¼ã¹ã«å¤±æããå ´åã¯è¡¨ç¤ºãã¾ããã
ã¡ãã£ã¢ãã¡ã¤ã«å½¢å¼ã«ãã£ã¦ã¯ããã¡ã¤ã«å½¢å¼æååã®ä¸é¨ã¨ã㦠codecs 弿°ã使ç¨ãã¦ãããå
·ä½çãªæ
å ±ãæä¾ãããã¨ãã§ãã¾ããä¾ãã° video/webm; codecs="vp8, vorbis" ã®å ´åã WebM æ åã§ãããåç»ã« VP8ãé³å£°ã« Vorbis ã使ç¨ãã¦ãããã¨ã示ãã¦ãã¾ãã
æè¡çæ¦è¦
| ã³ã³ãã³ãã«ãã´ãªã¼ |
ããã¼ã³ã³ãã³ã, è¨è¿°ã³ã³ãã³ã, åãè¾¼ã¿ã³ã³ãã³ãã controls 屿§ãæã¤å ´åã¯ã対話åã³ã³ãã³ãããã³ç¥è¦å¯è½ã³ã³ãã³ãã
|
|---|---|
| 許å¯ããã¦ããå 容 |
è¦ç´ ã
ãã®ä»ã®å ´å: 0 å以ä¸ã® |
| ã¿ã°ã®çç¥ | ãªããéå§ã¿ã°ã¨çµäºã¿ã°ã®ä¸¡æ¹ãå¿ é ã§ãã |
| 許å¯ããã¦ãã親è¦ç´ | åãè¾¼ã¿ã³ã³ãã³ããåãå ¥ãããã¹ã¦ã®è¦ç´ ã |
| æé»ã® ARIA ãã¼ã« | 対å¿ãããã¼ã«ãªã |
| 許å¯ããã¦ãã ARIA ãã¼ã« | application |
| DOM ã¤ã³ã¿ã¼ãã§ã¤ã¹ | HTMLVideoElement |
仿§æ¸
| 仿§æ¸ |
|---|
| HTML > # the-video-element > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
-
ãã¬ã¼ã å ã«ãããç»åã®ä½ç½®ã¨å¯¸æ³ã®è¨å®:
object-positionããã³object-fit <audio>