青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 編程教程 Html5教程 查看內(nèi)容

HTML 5 Video + DOM

html5 <video> 元素同樣擁有方法、屬性和事件。

其中的方法用于播放、暫停以及加載等。其中的屬性(比如時長、音量等)可以被讀取或設(shè)置。其中的 DOM 事件能夠通知您,比方說,<video> 元素開始播放、已暫停,已停止,等等。

下例中簡單的方法,向我們演示了如何使用 <video> 元素,讀取并設(shè)置屬性,以及如何調(diào)用方法。

html5 <video> - 方法、屬性以及事件

下面列出了大多數(shù)瀏覽器支持的視頻方法、屬性和事件:

方法屬性事件
play()currentSrcplay
pause()currentTimepause
load()videoWidthprogress
canPlayTypevideoHeighterror

durationtimeupdate

endedended

errorabort

pausedempty

mutedemptied

seekingwaiting

volumeloadedMetadata

height

width

注釋:在所有屬性中,只有 videoWidth 和 videoHeight 屬性是立即可用的。在視頻的元數(shù)據(jù)已加載后,其他屬性才可用。

方法、屬性、事件的使用

一:屬性   

error屬性:在正常讀取時候,使用媒體數(shù)據(jù)的過程中,video元素或audio元素的error屬性為null,但是任何時候只要出現(xiàn)錯誤,error屬性將返回一個MediaError對象,該對象的code返回對應(yīng)的錯誤狀態(tài),共有4個可能值:

  1. MEDIA_ERR_ABORTED(數(shù)字值為1),媒體數(shù)據(jù)的下載過程由于用戶的操作原因而被終止。

  2. MEDIA_ERR_NETWORK(數(shù)字值為2),確認媒體資源可用,但是在下載出現(xiàn)網(wǎng)絡(luò)錯誤,媒體數(shù)據(jù)的下載過程被中止。

  3. MEDIA_ERR_DECODE(數(shù)字值為3),確認媒體資源可用,但是解碼時發(fā)生錯誤。

  4. MEDIA_ERR_SRC_NOT_SUPPORTED(數(shù)字值為4),媒體資源不可用或媒體格式不被支持。

代碼如下:

<video src="" id="videoElement"></video>var video = document.getElementById("videoElement");
video.addEventListener('error',function(){var error = video.error;
    swicth(error.code) {
        case 1:
           alert("視頻的下載過程被中止");
        break;
 
        case 2:
           alert("網(wǎng)絡(luò)發(fā)生故障,視頻的下載過程被中止");
        break;
 
        case 3:
           alert("解碼失敗");
        break;
 
        case 4:
           alert("媒體資源不可用或媒體格式不被支持");
        break;
    }
},false);

networkState屬性

在媒體數(shù)據(jù)加載過程中可以使用video元素或audio元素的networkState屬性讀取當前網(wǎng)絡(luò)狀態(tài),共有4個可能的值;

1.  NETWORK_EMPTY(數(shù)字值為0):元素處于初始狀態(tài)。

2.  NETWORK_IDLE(數(shù)字值為1),瀏覽器已選擇好用什么編碼格式來播放媒體,但是尚未建立網(wǎng)絡(luò)連接。

3.  NETWORK_LOADING(數(shù)字值為2):媒體數(shù)據(jù)加載中

4.  NETWORK_NO_SOURCE(數(shù)字值為3),沒有支持的編碼格式,不執(zhí)行加載。

currentTime屬性與duration屬性

  1. video元素或audio元素的currentTime屬性來讀取媒體的當前播放位置(單位是s),也可以通過修改currentTime屬性來修改當前播放位置,如果修改的位置上沒有可用的媒體數(shù)據(jù)時,將拋出INVALID_STATE_ERR異常;

  2. video元素或audio元素的duration屬性來讀取媒體文件總的播放時間。

我們可以來做demo如下:

HTML代碼如下:

<video id="video" controls width=640 height=360 autoplay>
    <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora,vorbis"'/>
    <source src="Wildlife/Wildlife.webm" type='video/webm' >
    <source src="Wildlife/Wildlife.mp4" type='video/mp4'>
    <p>Video is not visible,most likely your browser does not support HTML5 video</p>
</video>
<button onclick="getCurTime()" type="button">獲得當前時間的位置</button>
<button onclick="setCurTime()" type="button">把時間位置設(shè)置為 5 秒</button>
<button onclick="duration()" type="button">讀取媒體文件總的播放時間</button>

js代碼如下:

var myVid=document.getElementById("video");
function getCurTime(){ 
    // 獲得當前視頻或者音頻時間的位置
    alert(myVid.currentTime);   
} 
function setCurTime(){ 
// 給當前的視頻或者音頻設(shè)置5s時間的位置
    myVid.currentTime=5;        
} 
function duration() {
    //讀取媒體文件總的播放時間 單位為S
    alert(myVid.duration); 
}

大家可以復(fù)制代碼,換一張視頻地址就可以看到效果了~;

played屬性,paused屬性與ended屬性

played:video元素或audio元素的played屬性來返回一個TimeRanges對象,從該對象中可以讀取媒體文件的已播放部分的時間段。開始時間為已播放部分的開始時間,結(jié)束時間為已播放部分的結(jié)束時間。

paused屬性:使用video元素或audio元素的paused屬性來返回一個布爾值,表示是否處于暫停播放中,true表示媒體暫停播放,false表示媒體正在播放;

ended屬性:使用video元素或audio元素的ended屬性來返回一個布爾值,表示是否播放完畢,true表示媒體播放完畢,false表示媒體還沒有播放完畢。

HTML代碼如下:

<video id="video" controls width=640 height=360 autoplay loop>
    <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora,most likely your browser does not support HTML5 video</p>
</video>
<button onclick="played()" type="button">讀取媒體文件的已播放部分的時間段</button>
<button onclick="paused()" type="button">是否處于暫停播放</button>
<button onclick="ended()" type="button">是否播放完畢</button>

js代碼如下:

var myVid=document.getElementById("video");
function played() {
    //讀取媒體文件的已播放部分的時間段
    console.log(myVid.played);
}
function paused() {
    // 是否處于暫停播放
    alert(myVid.paused);
}
function ended() {
    // 是否播放完畢
    alert(myVid.ended);
}

defaultPlaybackRate屬性與playbackRate屬性

     defaultPlaybackRate屬性:可以使用video元素或者audio元素的defaultPlaybackRate屬性讀取或修改媒體默認的播放速率。

     playbackRate屬性:可以使用video元素或者audio元素的playbackRate屬性讀取或修改媒體當前的播放速率。

volume屬性與muted屬性

volume屬性:使用video元素或audio元素的volume屬性讀取或修改媒體的播放音量,范圍為0到1,0為靜音,1為最大音量。

muted屬性:使用video元素或audio元素的muted屬性讀取或修改媒體的靜音狀態(tài),該值為布爾值,true表示處于靜音狀態(tài),false表示處于非靜音狀態(tài)。

HTML代碼如下:

<video id="video" controls width=640 height=360 autoplay loop>
    <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora,most likely your browser does not support HTML5 video</p>
</video>
<button onclick="volume()" type="button">讀取或修改媒體的播放音量</button>
<button onclick="muted()" type="button">讀取或修改媒體當前的靜音狀態(tài)</button>

JS代碼如下:

var myVid=document.getElementById("video");
function volume(){
    // 讀取或修改媒體的播放音量
    myVid.volume = 0.1;
}
function muted() {
    //讀取或修改媒體當前的靜音狀態(tài)
    myVid.muted = true;
}

大家可以使用下,當我點擊”讀取或修改媒體的播放音量”按鈕時候,聲音會變的很小,當我點擊”讀取或修改媒體當前的靜音狀態(tài)”按鈕時候,視頻完全就沒有聲音。

二:方法

video元素與audio元素有以下四種方法;

  1. play方法:使用play方法來播放媒體,自動將元素的paused屬性的值變?yōu)閒alse。

  2. pause方法:使用pause方法來暫停播放,自動將元素的paused屬性的值變?yōu)閠rue。

  3. load方法,使用load方法來重新載入媒體進行播放,自動將元素的playbackRate屬性的值變?yōu)閐efaultPlaybackRate屬性的值,自動將元素的error的值變?yōu)閚ull。

下面是播放和暫停的demo如下:

<video id="video" controls width=640 height=360>
    <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora,most likely your browser does not support HTML5 video</p>
</video>
<button onclick="play()">播放</button>
<button onclick="pause()">暫停</button>

JS代碼如下:

var myVid=document.getElementById("video");
// 監(jiān)聽視頻播放結(jié)束的事件
myVid.addEventListener("ended",function(){
    alert("播放結(jié)束");
},true);
// 發(fā)生錯誤
myVid.addEventListener('error',function(){
    switch(myVid.error.code) {
        case 1: 
          alert("視頻的下載過程被中止");
        break;
 
        case 2:
              alert("網(wǎng)絡(luò)發(fā)生故障,視頻的下載過程被中止");
        break;
 
        case 3:
              alert("解碼失敗");
        break;
 
        case 4:
              alert("不支持播放的視頻格式");
        break;
 
        default:
              alert("發(fā)生未知錯誤");
        }
},false);
 
function play() {
    // 播放視頻
    myVid.play();
}
function pause() {
    // 暫停播放
    myVid.pause();
}

如上代碼,默認的情況下是不自動播放,當我點擊播放按鈕時候,就播放,當我點擊暫停按鈕時候就停止當前的播放。

 4. canPlayType方法:使用canPlayType方法來測試瀏覽器是否支持指定的媒體類型,該方法定義如下:var support = videoElement.canPlayType(type);

videoElement表示頁面上的video元素或audio元素,該方法使用一個參數(shù)type,該參數(shù)的指定方法與source元素的type參數(shù)的指定方法相同,用播放文件的MIME類型來指定,可以在指定的字符串中加上表示媒體編碼格式的codes參數(shù)。

該方法可能返回的值如下所示:

  1. 空字符串:表示瀏覽器不支持此種媒體類型。

  2. maybe: 表示瀏覽器可能支持此種媒體類型。

  3. probably: 表示瀏覽器確定支持此種媒體類型。

HTML代碼如下:

<video id="video" controls width=640 height=360>
    <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora,most likely your browser does not support HTML5 video</p>
</video>
<button onclick="canPlayType()">canPlayType方法</button>

JS代碼如下:

var myVid=document.getElementById("video");
function canPlayType() {
    var support = myVid.canPlayType("video/webm");
    console.log(support); // maybe
 
    var support = myVid.canPlayType('video/ogg; codecs="theora,vorbis');
    console.log(support); // probably
}

三:事件

1.   事件處理方式

使用video元素或audio元素的事件方式有2種,第一種是監(jiān)聽的方式,使用video元素或audio元素的addEventListener方法來對事件的發(fā)生進行監(jiān)聽,該方法定義如下:

videoElement.addEventListener(type,listener,userCapture);

如上的監(jiān)聽方式和我們的JS的監(jiān)聽的方式一樣,不做詳細介紹,我們來看看第二種事件監(jiān)聽方式是為JavaScript腳本中常見的獲取事件句柄的方式,如下所示:

<video id=”” src=””  onplay=”begin()”></video>
function begin(){}

 2.   事件介紹

Video元素與audio元素的相關(guān)事件

 事件 描述
 loadstart 瀏覽器開始在網(wǎng)上尋找媒體數(shù)據(jù)
 progress 瀏覽器正在獲取媒體數(shù)據(jù)
 suspend 瀏覽器暫停獲取媒體數(shù)據(jù),但是下載過程中并沒有正常結(jié)束
 abort 瀏覽器在下載完全部媒體數(shù)據(jù)之前中止獲取媒體數(shù)據(jù),但是并不是由錯誤引起的
 error 獲取媒體數(shù)據(jù)過程中出錯
 emptied 暫不考慮,可以網(wǎng)上看
 stalled 瀏覽器嘗試獲取媒體數(shù)據(jù)失敗
 play 即將開始播放,當執(zhí)行了play方法時觸發(fā),或數(shù)據(jù)下載后元素被設(shè)為autoplay
 pause 播放暫停,當執(zhí)行了pause方法觸發(fā)
 loadedMetadata 瀏覽器獲取完媒體的時長和字節(jié)數(shù)
 loadeddata 瀏覽器已加載完畢當前播放位置的媒體數(shù)據(jù),準備播放
 waiting 可以暫不看
 playing 正在播放
 canplay 瀏覽器能夠播放媒體,但估計以當前播放速率不能直接將媒體播完,播放期間需要緩沖
 canplaythrough 瀏覽器能夠播放媒體,但估計以當前播放速率能將媒體播完,不再需要緩沖
 seeking Seeking變?yōu)閠rue,表示瀏覽器正在請求數(shù)據(jù)
 seeked Seeking屬性變?yōu)閒alse,表面瀏覽器停止請求數(shù)據(jù)
 timeupdate 當前播放位置發(fā)生改變,可能是播放過程中的自然改變,也可能是人為改變,或由于播放不能連續(xù)而發(fā)生的跳變。
 ended 播放結(jié)束后停止播放
 ratechange DefaultplaybackRate屬性或playbackRate屬性發(fā)生改變
 durationchange 播放時長發(fā)生改變
 volumechange volume屬性或muted屬性發(fā)生改變


下面我們來看個demo,在播放過程中會經(jīng)常觸發(fā)timeupdate事件來通知當前播放位置的改變,我們下面來看看timeupdate事件來顯示當前的播放進度。

HTML代碼如下:

<video id="video" controls width=640 height=360 autoplay loop="loop"></video>
<br/>
視頻地址:<input type="text" id="videoUrl"/>
<input id="playButton" type="button" onclick="playOrPauseVideo()" value="播放"/>
<span id="time"></span>

JS代碼如下:

function playOrPauseVideo(){
    var videoUrl = document.getElementById("videoUrl").value;
    var video = document.getElementById("video");
    //使用事件監(jiān)聽方式撲捉事件
    video.addEventListener('timeupdate',function(){
        var timedisplay = document.getElementById("time");
        // 使用秒數(shù)來顯示當前播放進度
        timedisplay.innerHTML = Math.floor(video.currentTime) + "/" + Math.floor(video.duration) + "(秒)";
        },false);
    if(video.paused) {
        if(videoUrl != video.src) {
            video.src = videoUrl;
            video.load();
        }else {
            video.play();
        }
        document.getElementById("playButton").value = "暫停";
        }else {
            video.pause();
            document.getElementById("playButton").value = "播放";
        }
    }
返回頂部
主站蜘蛛池模板: jealousvue成熟40岁 | 成人无码精品一区二区在线观看 | 久久热这里面只有精品 | 久久秋霞理论电影 | 樱花草在线观看影院 | 成人中文字幕在线 | 第一福利在线永久视频 | 黄色三级视频在线 | 成人片免费看 | 国产精品嫩草影视在线观看 | 共妻肉多荤文高h一女n男 | 男女后进式猛烈xx00动态图片 | 亚洲AV无码专区国产精品99 | 亚洲精品蜜桃AV久久久 | 国产人成高清在线视频99 | 亚洲AV无码偷拍在线观看 | 34g污奶绵uk甩奶| 99爱免费视频 | 美女张开腿让我了一夜 | 文中字幕一区二区三区视频播放 | 国产在线一区二区三区四区 | 中文字幕无码他人妻味 | 在线观看日韩一区 | 涩涩伊人久久无码欧美 | 亚洲男人天堂网 | 日本久久中文字幕精品 | 日韩高清在线亚洲专区 | 国产中文字幕乱码一区 | 国产女合集第六部 | 久久精品久久精品 | 小xav导航| 手机毛片在线观看 | 高傲教师麻麻被同学调教123 | 5566av资源| 国产传媒麻豆剧精品AV | 18videosex性欧美黑色 | 国产人妻系列无码专区97SS | 蜜柚免费视频高清观看在线 | 草比比过程图 | 男人天堂黄色 | 久久亚洲精品AV成人无码 |