HTML5 視頻播放器含代碼

HTML5 – 視頻播放器

隨著互聯網的普及和帶寬的提高,視頻已成為網絡媒體內容的重要組成部分。愛掏網 - it200.comHTML5 中新增加的 video 標簽為我們提供了一種更加方便的嵌入視頻的方式。愛掏網 - it200.com在本篇文章中,我們將會介紹如何使用 HTML5 中的 video 標簽來實現視頻播放器。愛掏網 - it200.com

使用 HTML5 中的 video 標簽,我們可以很容易地添加并自定義一個視頻播放器。愛掏網 - it200.com首先,我們需要在 HTML 文件中添加 video 標簽:

<video src="https://deepinout.com/html/html5-tutorials/video.mp4" controls></video>

上述代碼中,我們定義了一個 video 標簽,其中的 src 屬性指向要播放的視頻文件的路徑,并添加了 controls 屬性表示在播放器中顯示控制條。愛掏網 - it200.com接下來,我們需要在 CSS 文件中定義播放器的樣式:

video {
  width: 500px;
  height: 300px;
}

在這里,我們定義了 video 元素的寬度和高度。愛掏網 - it200.com

最后,我們需要處理兼容性問題:在一些舊版瀏覽器可能無法正常播放視頻。愛掏網 - it200.com為了解決這個問題,我們可以使用一個 fallback 非 HTML5 版的相應內容。愛掏網 - it200.com這里我們使用一個簡單的條件判斷來實現:

<video src="https://deepinout.com/html/html5-tutorials/video.mp4" controls>
  <source src="https://deepinout.com/html/html5-tutorials/video.ogg" type="video/ogg">
  <source src="https://deepinout.com/html/html5-tutorials/video.webm" type="video/webm">
  <p>您的瀏覽器不支持 HTML5 視頻,請更新瀏覽器或使用其他瀏覽器</p>
</video>

在這段代碼中,我們通過添加 source 標簽來引入多個視頻文件,當瀏覽器支持播放這些文件格式的視頻時會自動解析播放這些文件;當瀏覽器不支持這些文件格式時,會顯示 p 標簽內的內容。愛掏網 - it200.com

JavaScript 控制播放

除了使用 HTML 中的 controls 屬性顯示控制條,我們還可以使用 JavaScript 來控制視頻的播放行為。愛掏網 - it200.com首先,我們需要先選取 video 元素:

const video = document.querySelector('video');

通過調用 video 元素上的方法,我們可以對視頻進行控制:

video.play(); // 播放
video.pause(); // 暫停

而因為視頻文件本身較大,所以我們可能需要通過 video 元素上的屬性來獲取視頻播放的狀態以確定視頻是否已經準備好:

console.log(video.readyState); // 0 - 當前 沒有關于視頻的可用數據
                                 // 1 - 當前已獲取視頻的meta數據
                                 // 2 - 當前可以開始在“加載"期間進行播放
                                 // 3 - 當前可以開始播放(緩沖時)
                                 // 4 - 當前已經緩沖足夠的數據,可以進行無間斷的播放

同時,我們還可以通過 cover 元素上的事件來監聽視頻的狀態:

video.addEventListener('play', () => {
  console.log('視頻開始播放');
});

video.addEventListener('pause', () => {
  console.log('視頻暫停播放');
});

video.addEventListener('ended', () => {
  console.log('視頻播放結束');
});

視頻字幕

HTML5 中,我們可以通過 VTT(WebVTT)文件格式來為視頻添加字幕。愛掏網 - it200.comVTT 是一種文本文件格式,可以在開始時間和結束時間之間指定要顯示的字幕內容。愛掏網 - it200.com

要為視頻添加字幕,我們首先需要創建一個 VTT 文件:

WEBVTT

1
00:00.000 --> 00:03.000
It's a wonderful day.

2
00:03.000 --> 00:06.000
The sun is shining and the birds are singing.

3
00:06.000 --> 00:10.000
I love spending time outdoors.

然后,我們需要在 video 元素中添加 track 標簽來引入字幕文件:

<video src="https://deepinout.com/html/html5-tutorials/video.mp4" controls>
  <track kind="subtitles" src="https://deepinout.com/html/html5-tutorials/subs.vtt" srclang="en" label="English">
</video>

在這里,我們使用 kind 屬性來指定這個 track 是字幕(subtitles),并使用 src 屬性來指定 VTT 文件的路徑,srclang 屬性指示字幕語言,label 屬性為字幕設置標簽。愛掏網 - it200.com

最后,我們還需要在 CSS 文件中設置字幕的樣式:

::cue {
  background-color: rgba(0, 0, 0, 0.5);
  color: white;
  font-size: 1.2rem;
  padding: 5px;
}

在這段代碼中,我們使用 ::cue 偽元素來設置字幕的樣式。愛掏網 - it200.com

自定義控制條

默認控制條的樣式可能無法滿足我們的需求,我們可以使用 CSS 和 JavaScript 來自定義播放器控制條的樣式。愛掏網 - it200.com

首先,我們需要隱藏默認的控制條:

video::-webkit-media-controls {
  display: none !important;
}

video::-webkit-media-controls-enclosure {
  display: none !important;
}

video::-webkit-media-controls-panel {
  display: none !important;
}

然后,我們可以使用 HTML 和 CSS 來創建我們自己的控制條。愛掏網 - it200.com為了使控制條可以控制視頻的播放,我們需要在 JavaScript 中添加一些代碼:

const playBtn = document.querySelector('.playBtn');
const progress = document.querySelector('.progress');
const timeIndicator = document.querySelector('.timeIndicator');

playBtn.addEventListener('click', () => {
  if (video.paused) {
    video.play();
    playBtn.innerHTML = '<i class="fas fa-pause"></i>';
  } else {
    video.pause();
    playBtn.innerHTML = '<i class="fas fa-play"></i>';
  }
});

video.addEventListener('timeupdate', () => {
  const percentage = (video.currentTime / video.duration) * 100;
  progress.style.width = `{percentage}%`;

  let minute = Math.floor(video.currentTime / 60);
  if (minute<10) {
    minute = `0{minute}`;
  }
  let second = Math.floor(video.currentTime % 60);
  if (second < 10) {
    second = `0{second}`;
  }
  timeIndicator.textContent = `{minute}:${second}`;
});

progress.addEventListener('click', (e) => {
  const offsetX = e.offsetX;
  const totalWidth = progress.clientWidth;
  const percentage = (offsetX / totalWidth);
  const current = video.duration * percentage;
  video.currentTime = current;
});

在這里,我們通過選取 playBtn、progress 和 timeIndicator 元素,分別為這些元素添加了 click 和 timeupdate 事件的監聽器以實現控制條的功能。愛掏網 - it200.com

結論

HTML5 中的 video 標簽為我們提供了一種簡單和方便的嵌入視頻的方式。愛掏網 - it200.com我們可以使用默認的控制條來控制視頻的播放,也可以使用 JavaScript 和 CSS 來自定義播放器和控制條的樣式。愛掏網 - it200.com除此之外,我們還可以使用 VTT 文件格式為視頻添加字幕。愛掏網 - it200.com在使用時,我們需要留意瀏覽器對于不同視頻格式的兼容性問題。愛掏網 - it200.com總的來說,HTML5 中的 video 標簽為我們提供了一個更加靈活自由的視頻播放解決方案。愛掏網 - it200.com

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 亚洲精品欧美精品日韩精品 | 四虎永久在线精品影院| 久久久国产99久久国产久| 色噜噜人体337p人体| 成人午夜一区二区三区视频| 免费在线你懂的| 8090在线观看免费观看| 极品欧美jiizzhd欧美| 国产午夜激无码av毛片| 中文天堂最新版www| 激情视频在线观看网站| 国产精品二区在线| 久久久久九九精品影院| 精品午夜一区二区三区在线观看 | 一区二区三区福利视频| 毛片免费视频观看| 国产日产成人免费视频在线观看| 久久国产乱子伦免费精品| 精品久久人人做人人爽综合| 国产色在线视频| 久久婷婷五月综合成人D啪| 精品国产一二三区在线影院| 国产高清精品入口91| 久久精品久久久久观看99水蜜桃 | 和朋友共享娇妻高hh| 少妇高潮惨叫喷水在线观看| 一区二区三区91| 亚洲免费视频在线观看| 国产18禁黄网站免费观看| 国产精品亚洲欧美大片在线观看| 成年人视频免费在线观看| 欧美在线视频导航| 福利视频999| 色欲综合久久中文字幕网| 最新69堂国产成人精品视频| japanese国产中文在线观看| 久久久久中文字幕| 久久精品99国产精品日本| 亚洲国产日韩欧美在线as乱码 | 日本不卡一区二区三区最新| 欧美另类videos黑人极品|