当前位置:首页 > JavaScript

js实现播放视频

2026-03-16 07:24:34JavaScript

使用HTML5 Video元素

在HTML中嵌入<video>标签,通过JavaScript控制播放。这是最基础且兼容性较好的方法。

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

<script>
  const video = document.getElementById('myVideo');
  video.play(); // 播放
  video.pause(); // 暂停
</script>

动态加载视频源

通过JavaScript动态修改视频源,适用于需要切换不同视频的场景。

const video = document.getElementById('myVideo');
video.src = 'new-video.mp4';
video.load(); // 重新加载视频源
video.play();

自定义播放器控件

隐藏原生控件,通过JavaScript实现自定义按钮控制。

<video id="myVideo" width="320" height="240"></video>
<button onclick="playVideo()">播放</button>
<button onclick="pauseVideo()">暂停</button>

<script>
  function playVideo() {
    document.getElementById('myVideo').play();
  }
  function pauseVideo() {
    document.getElementById('myVideo').pause();
  }
</script>

监听视频事件

通过事件监听实现播放状态反馈或交互逻辑。

const video = document.getElementById('myVideo');
video.addEventListener('play', () => {
  console.log('视频开始播放');
});
video.addEventListener('ended', () => {
  console.log('视频播放结束');
});

全屏播放控制

通过JavaScript触发视频全屏模式。

const video = document.getElementById('myVideo');
if (video.requestFullscreen) {
  video.requestFullscreen();
} else if (video.webkitRequestFullscreen) {
  video.webkitRequestFullscreen();
}

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

对于更复杂的需求,可以使用成熟的视频播放库。

<link href="https://vjs.zencdn.net/7.20.3/video-js.css" rel="stylesheet">
<video id="myVideo" class="video-js" controls preload="auto">
  <source src="video.mp4" type="video/mp4">
</video>

<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script>
<script>
  const player = videojs('myVideo');
  player.play();
</script>

移动端自动播放处理

iOS等设备限制自动播放,需通过用户交互触发。

document.body.addEventListener('click', () => {
  const video = document.getElementById('myVideo');
  video.play();
}, { once: true });

流媒体播放(如HLS)

使用hls.js库实现自适应码率流播放。

js实现播放视频

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<video id="myVideo" controls></video>

<script>
  const video = document.getElementById('myVideo');
  if (Hls.isSupported()) {
    const hls = new Hls();
    hls.loadSource('stream.m3u8');
    hls.attachMedia(video);
  }
</script>

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

相关文章

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

vue上传视频实现

vue上传视频实现

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

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…