当前位置:首页 > JavaScript

js实现视频播放器

2026-01-30 16:39:56JavaScript

实现基础视频播放器

使用HTML5的<video>标签结合JavaScript可以实现一个基础视频播放器。以下是核心代码示例:

<video id="myVideo" width="640" height="360" controls>
  <source src="video.mp4" type="video/mp4">
</video>

<div class="controls">
  <button id="playBtn">播放</button>
  <button id="pauseBtn">暂停</button>
  <input type="range" id="progressBar" min="0" max="100" value="0">
</div>
const video = document.getElementById('myVideo');
const playBtn = document.getElementById('playBtn');
const pauseBtn = document.getElementById('pauseBtn');
const progressBar = document.getElementById('progressBar');

playBtn.addEventListener('click', () => {
  video.play();
});

pauseBtn.addEventListener('click', () => {
  video.pause();
});

video.addEventListener('timeupdate', () => {
  const progress = (video.currentTime / video.duration) * 100;
  progressBar.value = progress;
});

progressBar.addEventListener('input', () => {
  const seekTime = (progressBar.value / 100) * video.duration;
  video.currentTime = seekTime;
});

添加音量控制

扩展播放器功能,添加音量控制:

const volumeControl = document.createElement('input');
volumeControl.type = 'range';
volumeControl.min = '0';
volumeControl.max = '1';
volumeControl.step = '0.1';
volumeControl.value = '1';

volumeControl.addEventListener('input', () => {
  video.volume = volumeControl.value;
});

document.querySelector('.controls').appendChild(volumeControl);

实现全屏功能

添加全屏切换按钮:

js实现视频播放器

const fullscreenBtn = document.createElement('button');
fullscreenBtn.textContent = '全屏';

fullscreenBtn.addEventListener('click', () => {
  if (video.requestFullscreen) {
    video.requestFullscreen();
  } else if (video.webkitRequestFullscreen) {
    video.webkitRequestFullscreen();
  } else if (video.msRequestFullscreen) {
    video.msRequestFullscreen();
  }
});

document.querySelector('.controls').appendChild(fullscreenBtn);

添加键盘快捷键

实现键盘控制功能:

document.addEventListener('keydown', (e) => {
  switch(e.key) {
    case ' ':
      video.paused ? video.play() : video.pause();
      break;
    case 'ArrowRight':
      video.currentTime += 5;
      break;
    case 'ArrowLeft':
      video.currentTime -= 5;
      break;
    case 'ArrowUp':
      video.volume = Math.min(video.volume + 0.1, 1);
      break;
    case 'ArrowDown':
      video.volume = Math.max(video.volume - 0.1, 0);
      break;
    case 'f':
      video.requestFullscreen();
      break;
  }
});

添加自定义样式

使用CSS美化播放器界面:

js实现视频播放器

.controls {
  display: flex;
  gap: 10px;
  padding: 10px;
  background: #333;
  border-radius: 0 0 5px 5px;
}

button {
  padding: 5px 15px;
  background: #4CAF50;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
}

button:hover {
  background: #45a049;
}

input[type="range"] {
  width: 100%;
}

处理不同视频格式

为兼容不同浏览器,提供多种视频格式:

<video id="myVideo" width="640" height="360" controls>
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
  <source src="video.ogv" type="video/ogg">
  您的浏览器不支持HTML5视频
</video>

添加播放列表功能

实现多视频切换:

const playlist = [
  { title: '视频1', src: 'video1.mp4' },
  { title: '视频2', src: 'video2.mp4' }
];

let currentVideoIndex = 0;

const nextBtn = document.createElement('button');
nextBtn.textContent = '下一个';

nextBtn.addEventListener('click', () => {
  currentVideoIndex = (currentVideoIndex + 1) % playlist.length;
  video.src = playlist[currentVideoIndex].src;
  video.play();
});

document.querySelector('.controls').appendChild(nextBtn);

分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…