当前位置:首页 > JavaScript

js代码实现视频播放

2026-03-01 18:40:33JavaScript

使用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();
  // 跳转到特定时间(秒)
  video.currentTime = 10;
</script>

自定义播放器控件

通过JavaScript完全自定义UI控件:

<div>
  <video id="customVideo" src="video.mp4"></video>
  <button id="playBtn">播放</button>
  <input type="range" id="progressBar" value="0">
</div>

<script>
  const vid = document.getElementById('customVideo');
  const playBtn = document.getElementById('playBtn');
  const progressBar = document.getElementById('progressBar');

  playBtn.addEventListener('click', () => {
    vid.paused ? vid.play() : vid.pause();
  });

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

  progressBar.addEventListener('input', () => {
    vid.currentTime = (progressBar.value / 100) * vid.duration;
  });
</script>

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

对于更复杂的功能(如自适应流、跨浏览器支持),可使用专业库:

<link href="https://vjs.zencdn.net/7.20.3/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.20.3/video.js"></script>
<script>
  const player = videojs('enhancedVideo');
  player.ready(() => {
    player.play();
  });
</script>

处理全屏模式

通过Fullscreen API实现全屏控制:

const videoElem = document.getElementById("myVideo");
// 进入全屏
videoElem.requestFullscreen().catch(err => {
  console.error(`全屏错误: ${err.message}`);
});
// 退出全屏
document.exitFullscreen();

事件监听

处理关键视频事件:

video.addEventListener('loadedmetadata', () => {
  console.log('视频时长:', video.duration);
});

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

video.addEventListener('error', () => {
  console.error('加载错误:', video.error.message);
});

移动端自动播放处理

iOS等平台限制自动播放,需用户交互触发:

js代码实现视频播放

document.body.addEventListener('click', () => {
  video.play().catch(e => {
    console.log('自动播放被阻止,显示播放按钮');
  });
}, { once: true });

分享给朋友:

相关文章

h5实现响应式代码

h5实现响应式代码

响应式设计基础 HTML5实现响应式设计主要通过媒体查询(Media Queries)、弹性布局(Flexbox)、网格布局(Grid)和视口设置(Viewport Meta Tag)等技术。核心目标…

vue实现弹窗代码

vue实现弹窗代码

Vue 弹窗实现方法 方法一:使用组件与v-if控制显示 创建一个独立的弹窗组件(如Modal.vue),通过父组件的v-if或v-show控制显隐: <!-- Modal.vue --&g…

vue实现左右滑动代码

vue实现左右滑动代码

以下是一个基于 Vue 3 实现左右滑动功能的代码示例,结合手势识别和动画效果: 基础实现(使用 CSS 和事件监听) <template> <div class="slide…

vue实现代码实例

vue实现代码实例

以下是一个基于 Vue 3 的完整代码实例,包含核心功能实现和常见开发场景的示例: 基础组件示例 <template> <div> <h1>{{ ti…

vue 实现点击复制 代码

vue 实现点击复制 代码

vue 实现点击复制功能 使用Vue实现点击复制功能可以通过原生JavaScript的document.execCommand或现代的Clipboard API。以下是几种常见实现方式: 使用doc…

前端vue实现视频播放

前端vue实现视频播放

使用原生HTML5视频标签 在Vue中可以直接使用HTML5的<video>标签实现基础视频播放功能。这种方式简单快捷,适合不需要复杂交互的场景。 <template>…