当前位置:首页 > JavaScript

js实现视频播放

2026-03-01 02:24:21JavaScript

使用HTML5 <video> 元素实现基础播放

通过HTML5的<video>标签嵌入视频,配合JavaScript控制播放行为。示例代码如下:

<video id="myVideo" width="400" controls>
  <source src="video.mp4" type="video/mp4">
  您的浏览器不支持HTML5视频
</video>
<script>
  const video = document.getElementById('myVideo');
  // 播放
  video.play(); 
  // 暂停
  video.pause();
  // 跳转到第10秒
  video.currentTime = 10;
</script>

自定义播放器控件

隐藏原生控件,通过JavaScript监听事件并自定义按钮功能:

<video id="customVideo" width="400"></video>
<button onclick="playVideo()">播放</button>
<button onclick="pauseVideo()">暂停</button>
<script>
  const customVideo = document.getElementById('customVideo');
  function playVideo() { customVideo.play(); }
  function pauseVideo() { customVideo.pause(); }
  // 监听视频结束事件
  customVideo.addEventListener('ended', () => {
    console.log('播放结束');
  });
</script>

使用第三方库(如Video.js)

Video.js提供跨浏览器兼容性和丰富UI组件。引入库后初始化:

<link href="https://vjs.zencdn.net/7.15.4/video-js.css" rel="stylesheet">
<video id="enhancedVideo" class="video-js" controls>
  <source src="video.mp4" type="video/mp4">
</video>
<script src="https://vjs.zencdn.net/7.15.4/video.js"></script>
<script>
  const player = videojs('enhancedVideo');
  player.ready(() => {
    player.addClass('vjs-big-play-centered');
  });
</script>

处理兼容性与格式支持

检测浏览器支持的视频格式,动态切换源文件:

const video = document.createElement('video');
const canPlayMP4 = video.canPlayType('video/mp4');
const canPlayWebM = video.canPlayType('video/webm');
if (canPlayMP4) {
  video.src = 'video.mp4';
} else if (canPlayWebM) {
  video.src = 'video.webm';
}
document.body.appendChild(video);

实现全屏播放

调用全屏API增强用户体验:

function toggleFullscreen() {
  const video = document.getElementById('myVideo');
  if (!document.fullscreenElement) {
    video.requestFullscreen().catch(err => {
      console.error('全屏失败:', err);
    });
  } else {
    document.exitFullscreen();
  }
}

实时监控播放进度

通过timeupdate事件更新进度条或显示当前时间:

js实现视频播放

video.addEventListener('timeupdate', () => {
  const progress = (video.currentTime / video.duration) * 100;
  console.log(`进度: ${progress.toFixed(2)}%`);
});

标签: 视频播放js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…