当前位置:首页 > JavaScript

js实现播放视频

2026-02-03 06:26:36JavaScript

使用HTML5 <video> 元素

HTML5提供了原生支持视频播放的<video>标签,通过JavaScript可以控制其行为。以下是一个基本实现示例:

<video id="myVideo" width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>

<script>
  const video = document.getElementById('myVideo');
  // 播放视频
  video.play();
  // 暂停视频
  video.pause();
  // 跳转到指定时间(秒)
  video.currentTime = 10;
</script>

自定义播放器控件

通过JavaScript可以完全自定义播放器界面,隐藏原生控件并添加自定义按钮:

<video id="customVideo" width="320" height="240">
  <source src="movie.mp4" type="video/mp4">
</video>
<div>
  <button onclick="playVideo()">播放</button>
  <button onclick="pauseVideo()">暂停</button>
  <input type="range" id="seekBar" value="0">
</div>

<script>
  const video = document.getElementById('customVideo');
  const seekBar = document.getElementById('seekBar');

  function playVideo() {
    video.play();
  }

  function pauseVideo() {
    video.pause();
  }

  // 更新进度条
  video.addEventListener('timeupdate', () => {
    seekBar.value = (video.currentTime / video.duration) * 100;
  });

  // 跳转视频
  seekBar.addEventListener('input', () => {
    video.currentTime = (seekBar.value / 100) * video.duration;
  });
</script>

使用Video.js库

Video.js是一个流行的开源HTML5视频播放器库,支持跨浏览器兼容性和丰富功能:

<link href="https://vjs.zencdn.net/7.20.3/video-js.css" rel="stylesheet">
<video id="videojs-player" class="video-js" controls preload="auto" width="640" height="264">
  <source src="movie.mp4" type="video/mp4">
</video>
<script src="https://vjs.zencdn.net/7.20.3/video.js"></script>
<script>
  const player = videojs('videojs-player');
  player.play();
</script>

处理全屏播放

JavaScript可以控制视频进入或退出全屏模式:

function toggleFullscreen() {
  const video = document.getElementById('myVideo');
  if (!document.fullscreenElement) {
    video.requestFullscreen().catch(err => {
      console.error(`全屏错误: ${err.message}`);
    });
  } else {
    document.exitFullscreen();
  }
}

监听视频事件

视频元素提供多种事件监听,用于处理不同播放状态:

video.addEventListener('play', () => console.log('视频开始播放'));
video.addEventListener('pause', () => console.log('视频已暂停'));
video.addEventListener('ended', () => console.log('视频播放结束'));
video.addEventListener('error', () => console.error('视频加载错误'));

兼容多格式视频源

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

<video controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.webm" type="video/webm">
  <source src="movie.ogv" type="video/ogg">
</video>

移动端自动播放处理

移动端浏览器通常阻止自动播放,需要用户交互触发:

js实现播放视频

document.addEventListener('click', () => {
  const video = document.getElementById('myVideo');
  video.play().catch(e => console.log('自动播放被阻止:', e));
}, { once: true });

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

相关文章

elementui视频

elementui视频

以下是关于 ElementUI 视频资源的整理,涵盖教程、实战案例和官方资源: ElementUI 官方视频资源 ElementUI 官方文档虽以文字为主,但部分社区或第三方平台可能有官方团队发布的…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现拷贝

js实现拷贝

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

vue上传视频实现

vue上传视频实现

使用 <input type="file"> 上传视频 创建文件选择控件,限制文件类型为视频格式(如 .mp4, .webm)。通过 @change 事件监听文件选择,获取 File 对象…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js类实现

js类实现

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