UNPKG

vue3-liveplayer-wrapper

Version:

Vue 3 wrapper for @liveqing/liveplayer-v3 with recording and playback control features - Fully compatible with Vue 3.5+

238 lines (181 loc) 5.48 kB
# LivePlayer 视频播放器 Vue 3 包装器 一个功能完整的 Vue 3 视频播放器包装器,基于 `@liveqing/liveplayer-v3` 和 `video.js`,支持视频播放、录制、播放控制等功能。 ## 🚀 特性 - ✅ 完全兼容 Vue 3.5+ - 🎥 支持多种视频格式 (HLS, FLV, RTMP 等) - 📹 内置录制功能 - 🎮 完整的播放控制 - 🖼️ 截图功能 - 🎛️ 自定义按钮和工具栏 - 📱 响应式设计 - 🔧 TypeScript 支持 - 📦 **自包含依赖** - 无需单独安装 video.js 和 @liveqing/liveplayer-v3 ## 📦 安装 **现在只需要安装一个包!** ```bash # 使用 npm 安装 npm install vue3-liveplayer-wrapper@1.3.6 # 或使用 yarn yarn add vue3-liveplayer-wrapper@1.3.6 # 或使用 pnpm pnpm add vue3-liveplayer-wrapper@1.3.6 ``` ## 🎯 重要更新 ### v1.3.6 - 自包含依赖版本 - ✅ **自包含依赖**: 将 `video.js` 和 `@liveqing/liveplayer-v3` 打包进库中 - ✅ **简化安装**: 用户只需要安装 `vue3-liveplayer-wrapper` 一个包 - ✅ **无需额外配置**: 不再需要在 HTML 中手动引入依赖 - ✅ **解决 videojs 未定义问题**: 内置依赖确保兼容性 ### 旧版本 (v1.3.5 及以下) 如果使用旧版本,仍需要手动引入依赖: ```html <!DOCTYPE html> <html> <head> <!-- Video.js CSS --> <link href="https://vjs.zencdn.net/8.23.4/video-js.css" rel="stylesheet" /> <!-- Video.js 依赖 --> <script src="https://vjs.zencdn.net/8.23.4/video.min.js"></script> <!-- LivePlayer 依赖 --> <script src="/node_modules/@liveqing/liveplayer-v3/dist/component/liveplayer-lib.min.js"></script> </head> <body> <div id="app"></div> </body> </html> ``` ## 🚨 常见问题解决 ### ReferenceError: videojs is not defined **v1.3.6+ 版本**: 这个问题已经自动解决,因为依赖被打包进库中。 **v1.3.5 及以下版本**: 如果遇到此错误,请按以下步骤解决: 1. **确保正确引入 video.js** ```html <script src="https://vjs.zencdn.net/8.23.4/video.min.js"></script> ``` 2. **检查脚本加载顺序** - video.js 必须在 LivePlayer 之前加载 - 确保所有脚本都成功加载 3. **验证全局变量** ```javascript // 在浏览器控制台中检查 console.log(window.videojs); ``` ## 📖 使用方法 ### 基本用法 (推荐 v1.3.6+) ```vue <template> <LivePlayerWrapper :video-url="videoUrl" :video-title="'我的视频'" :autoplay="true" :controls="true" @ready="onPlayerReady" @error="onPlayerError" /> </template> <script setup> import LivePlayerWrapper from 'vue3-liveplayer-wrapper' const videoUrl = 'https://example.com/video.m3u8' const onPlayerReady = (player) => { console.log('播放器就绪:', player) } const onPlayerError = (error) => { console.error('播放器错误:', error) } </script> ``` ### 录制功能 ```vue <template> <LivePlayerWrapper ref="playerRef" :video-url="videoUrl" @recordingStart="onRecordingStart" @recordingStop="onRecordingStop" @recordingError="onRecordingError" /> <button @click="toggleRecording"> {{ isRecording ? '停止录制' : '开始录制' }} </button> </template> <script setup> import { ref } from 'vue' import LivePlayerWrapper from 'vue3-liveplayer-wrapper' const playerRef = ref(null) const isRecording = ref(false) const videoUrl = 'https://example.com/video.m3u8' const toggleRecording = () => { if (isRecording.value) { playerRef.value?.stopRecording() } else { playerRef.value?.startRecording() } } const onRecordingStart = () => { isRecording.value = true console.log('录制开始') } const onRecordingStop = () => { isRecording.value = false console.log('录制停止') } const onRecordingError = (error) => { console.error('录制错误:', error) } </script> ``` ## 🎯 组件属性 | 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `videoUrl` | String | `""` | 视频流地址 | | `videoTitle` | String | `""` | 视频标题 | | `autoplay` | Boolean | `true` | 自动播放 | | `controls` | Boolean | `true` | 显示控制栏 | | `muted` | Boolean | `true` | 静音播放 | | `live` | Boolean | `true` | 是否为直播流 | ## 📡 事件 | 事件名 | 参数 | 说明 | |--------|------|------| | `ready` | `player` | 播放器就绪 | | `play` | `time` | 开始播放 | | `pause` | `time` | 暂停播放 | | `error` | `error` | 播放错误 | | `recordingStart` | - | 录制开始 | | `recordingStop` | - | 录制停止 | | `recordingError` | `error` | 录制错误 | ## 🛠️ 开发 ### 本地开发 ```bash # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建库 npm run build:lib # 类型检查 npm run type-check ``` ### 构建配置 项目包含两个 Vite 配置: - `vite.config.ts` - 开发环境配置 - `vite.lib.config.ts` - 库构建配置 ## 📝 更新日志 ### v1.3.6 - ✅ **自包含依赖**: 将 video.js 和 @liveqing/liveplayer-v3 打包进库中 - ✅ **简化安装**: 用户只需要安装一个包 - ✅ **自动解决 videojs 未定义问题** - ✅ **无需额外配置** ### v1.3.5 - 修复 `ReferenceError: videojs is not defined` 错误 - 优化 video.js 加载机制 - 添加备用加载方案 - 改进类型声明 - 更新依赖配置 ### v1.3.4 - 添加录制功能 - 支持播放控制 - 添加自定义按钮 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## �� 许可证 MIT License