vue-video-player实现断点续播
时间: 2025-01-03 09:35:15 浏览: 98
### 使用 `vue-video-player` 实现视频播放器的断点续播功能
为了实现视频播放器的断点续播功能,可以利用浏览器本地存储(如 `localStorage` 或者 `sessionStorage`)来保存用户的观看进度。当用户再次访问页面时,读取该进度并设置到播放器中。
#### 1. 安装依赖库
首先,在项目根目录下执行命令安装必要的包:
```bash
npm install vue-video-player --save
```
#### 2. 导入样式表和初始化插件
接着在项目的入口文件 main.js 中引入所需的 CSS 文件以及注册全局组件:
```javascript
import 'video.js/dist/video-js.css'
import { VideoPlayer } from 'vue-video-player'
Vue.use(VideoPlayer);
```
#### 3. 创建带有断点续播逻辑的播放器组件
创建一个新的 Vue 组件用于展示带记忆播放位置特性的媒体资源:
```html
<template>
<div class="video-container">
<!-- 视频播放区域 -->
<video-player ref="myVideoPlayer"
:options="playerOptions"></video-player>
<!-- 控制栏按钮等其他UI元素可自行添加 -->
</div>
</template>
<script>
export default {
name: "MemoryPlay",
data() {
return {
playerOptions: {
sources: [{
type: "video/mp4", // 类型
src: "" // URL 地址
}],
autoplay: false,
controls: true,
preload: 'auto',
poster: "", // 封面图路径
width: document.documentElement.clientWidth,
notSupportedMessage: '此视频暂无法播放,请稍后再试',
}
};
},
mounted(){
this.loadLastPlaybackPosition();
const videoElement = this.$refs.myVideoPlayer.player;
videoElement.addEventListener('timeupdate', () => {
localStorage.setItem('lastPlaybackTime', Math.floor(videoElement.currentTime));
});
},
methods:{
loadLastPlaybackPosition(){
let lastPlaybackTime = Number(localStorage.getItem('lastPlaybackTime'));
if (!isNaN(lastPlaybackTime)){
setTimeout(() => {
this.$refs.myVideoPlayer.player.currentTime = lastPlaybackTime;
}, 0);
}
}
}
}
</script>
```
上述代码片段展示了如何通过监听时间更新事件(`timeupdate`)记录当前播放时刻,并且在组件挂载完成后尝试恢复之前暂停的位置[^1]。
阅读全文
相关推荐


















