溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

video標(biāo)簽的API接口在JS中怎么使用

發(fā)布時(shí)間:2022-03-01 14:26:24 來(lái)源:億速云 閱讀:690 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“video標(biāo)簽的API接口在JS中怎么使用”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“video標(biāo)簽的API接口在JS中怎么使用”文章能幫助大家解決問(wèn)題。

一、雖然有的屬性是boolean類(lèi)型,但仍舊建議按照XHTML書(shū)寫(xiě)(屬性名=”屬性值”)格式,避免出現(xiàn)錯(cuò)誤 (下面加粗的屬性為常用屬性)

屬性功能描述
controlscontrols是否顯示播放控件
autoplayautoplay設(shè)置是否打開(kāi)瀏覽器后自動(dòng)播放
widthPilex(像素)設(shè)置播放器的寬度
heightPilex(像素)設(shè)置播放器的高度
looploop設(shè)置視頻是否循環(huán)播放(即播放完后繼續(xù)重新播放)
preloadpreload設(shè)置是否等加載完再播放
srcurl設(shè)置要播放視頻的url地址
posterimgurl設(shè)置播放器初始默認(rèn)顯示圖片
autobufferautobuffer設(shè)置為瀏覽器緩沖方式,不設(shè)置autoply才有效

演示:

<video controls="controls" width="500px" height="500px" loop autoplay  poster="imgUrl">
    <source src="黑客之都.mp4" type="video/mp4"/>
    <track src="a.vtt" label="中文" srclang="zh" kind="subtitles" default/>
</video>

二、.video標(biāo)簽API方法:Video標(biāo)簽也提供了比較人性化的API接口方法,供寫(xiě)JS時(shí)直接調(diào)用,方便簡(jiǎn)單

API事件說(shuō)明
addTextTrack()向音頻/視頻添加新的文本軌道。
playvideo.play();    播放視頻
pausevideo.pause();  暫停播放視頻
loadvideo.load();   將全部屬性回復(fù)默認(rèn)值,視頻恢復(fù)重新開(kāi)始狀態(tài)
canPlayTypevar support = videoid.canPlayType('video/mp4');   判斷瀏覽器是否支持當(dāng)前類(lèi)型的視頻格式 返回值: 空字符串:不支持 Maybe:可能支持 Probably:完全支持

關(guān)于video標(biāo)簽的API接口在JS中用法如下:

<!DOCTYPE HTML>
<html>
<head>
    <style>
        video::cue{
            background-color:transparent;
            color:white;
            font-size:20px;
            line-height: 100px;
        }
    </style>
</head>
<body>

<video controls="controls" id="video1">
    <source src="黑客之都.Hackerville.S01E01.720P.mp4" type="video/mp4"/>
    <track src="a.vtt" label="中文字幕" srclang="zh" kind="subtitles" default/>
</video>
<button onclick="isPlay(this)">播放</button>
<button onclick="replay()">重新播放</button>
<button onclick="isPlayType()">瀏覽器支持</button>

<script>
    var video1 = document.getElementById("video1");  //括號(hào)內(nèi)為video標(biāo)簽的id
    //播放視頻(點(diǎn)擊播放按鈕,后變成暫停)
   function isPlay(obj1){
       if(video1.paused){    //paused屬于視頻api屬性
           obj1.innerHTML="暫停";
           video1.play();
    }else{
           obj1.innerHTML="播放";
           video1.pause();
    }
}

//重新從開(kāi)頭播放
function replay(){
       video1.load();
}

//判斷要播放的視頻格式當(dāng)前瀏覽器是否支持
function isPlayType(){
       var support = video1.canPlayType("video/mp4");
       console.log(support);  //返回結(jié)果:空字符串、maybe(可能支持)、probably(支持)
}
</script>
</body>
</html>

三、video標(biāo)簽API屬性: Video不僅提供了API接口,還提供了許多的API屬性,方便在JS中做判斷,如下:大部分屬性通過(guò)boolean值判斷

API屬性事件說(shuō)明
duration返回媒體的播放總時(shí)長(zhǎng),單位秒
loop是否循環(huán)播放
muted是否靜音
paused是否暫停
currentTime當(dāng)前播放時(shí)間(單位:秒)
volume音量值(0~1)
networkState返回當(dāng)前網(wǎng)絡(luò)狀態(tài)
playbackRate播放的倍速(加速、減速播放)(-2~2)
src當(dāng)前視頻源的URL
ended返回當(dāng)前播放是否結(jié)束標(biāo)志
error返回當(dāng)前播放的錯(cuò)誤狀態(tài)
initialTime返回初始播放的位置
mediaGroup當(dāng)前音視頻所屬媒體組 (用來(lái)鏈接多個(gè)音視頻標(biāo)簽)
played當(dāng)前播放部件已經(jīng)播放的時(shí)間范圍(TimeRanges對(duì)象)
preload頁(yè)面加載時(shí)是否同時(shí)加載音視頻
readyState返回當(dāng)前的準(zhǔn)備狀態(tài)
seekable返回當(dāng)前可跳轉(zhuǎn)部件的時(shí)間范圍(TimeRanges對(duì)象)
audioTracks返回可用的音軌列表(MultipleTrackList對(duì)象)
autoplay媒體加載后自動(dòng)播放
buffered返回緩沖部件的時(shí)間范圍(TimeRanges對(duì)象)
controller返回當(dāng)前的媒體控制器(MediaController對(duì)象)
controls顯示播控控件
crossOriginCORS設(shè)置
currentSrc返回當(dāng)前媒體的URL
defaultMuted缺省是否靜音
defaultPlaybackRate播控的缺省倍速
seeking返回用戶(hù)是否做了跳轉(zhuǎn)操作
startOffsetTime返回當(dāng)前的時(shí)間偏移(Date對(duì)象)
textTracks返回可用的文本軌跡(TextTrackList對(duì)象)
videoTracks返回可用的視頻軌跡(VideoTrackList對(duì)象)

演示:

<script>
function setting(){
     video1.muted=true;          //設(shè)置靜音
     video1.volume=0.2;           //設(shè)置音量,1等于100%
     video1.playbackRate=2;     //2倍播放速度
     video1.controls=false;    //不顯示播控控件
}
</script>

四、音頻/視頻事件

事件描述
abort當(dāng)音頻/視頻的加載已放棄時(shí)觸發(fā)。
canplay當(dāng)瀏覽器可以開(kāi)始播放音頻/視頻時(shí)觸發(fā)。
canplaythrough當(dāng)瀏覽器可在不因緩沖而停頓的情況下進(jìn)行播放時(shí)觸發(fā)。
durationchange當(dāng)音頻/視頻的時(shí)長(zhǎng)已更改時(shí)觸發(fā)。
emptied當(dāng)目前的播放列表為空時(shí)觸發(fā)。
ended當(dāng)目前的播放列表已結(jié)束時(shí)觸發(fā)。
error當(dāng)在音頻/視頻加載期間發(fā)生錯(cuò)誤時(shí)觸發(fā)。
loadeddata當(dāng)瀏覽器已加載音頻/視頻的當(dāng)前幀時(shí)觸發(fā)。
loadedmetadata當(dāng)瀏覽器已加載音頻/視頻的元數(shù)據(jù)時(shí)觸發(fā)。
loadstart當(dāng)瀏覽器開(kāi)始查找音頻/視頻時(shí)觸發(fā)。
pause當(dāng)音頻/視頻已暫停時(shí)觸發(fā)。
play當(dāng)音頻/視頻已開(kāi)始或不再暫停時(shí)觸發(fā)。
playing當(dāng)音頻/視頻在因緩沖而暫?;蛲V购笠丫途w時(shí)觸發(fā)。
progress當(dāng)瀏覽器正在下載音頻/視頻時(shí)觸發(fā)。
ratechange當(dāng)音頻/視頻的播放速度已更改時(shí)觸發(fā)。
seeked當(dāng)用戶(hù)已移動(dòng)/跳躍到音頻/視頻中的新位置時(shí)觸發(fā)。
seeking當(dāng)用戶(hù)開(kāi)始移動(dòng)/跳躍到音頻/視頻中的新位置時(shí)觸發(fā)。
stalled當(dāng)瀏覽器嘗試獲取媒體數(shù)據(jù),但數(shù)據(jù)不可用時(shí)觸發(fā)。
suspend當(dāng)瀏覽器刻意不獲取媒體數(shù)據(jù)時(shí)觸發(fā)。
timeupdate當(dāng)目前的播放位置已更改時(shí)觸發(fā)。
volumechange當(dāng)音量已更改時(shí)觸發(fā)。
waiting當(dāng)視頻由于需要緩沖下一幀而停止時(shí)觸發(fā)。

關(guān)于“video標(biāo)簽的API接口在JS中怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI