# CKPlayer 视频播放器集成说明
## 🎯 概述
已成功将项目中的VideoPlayer组件从原生HTML5 video + HLS.js 替换为 CKPlayer 播放器,并集成了public文件夹中的本地视频播放功能。
## 📁 文件结构
```
public/
├── ckplayer/ # CKPlayer播放器文件
│ ├── css/ # 样式文件
│ ├── js/ # 核心JS文件
│ ├── hls.js/ # HLS支持
│ └── language/ # 语言包
└── video/
└── first.mp4 # 本地视频文件
src/
├── components/
│ └── VideoPlayer.vue # 更新后的视频播放器组件
├── views/
│ ├── LocalVideoDemo.vue # 本地视频演示页面
│ └── CourseStudy.vue # 课程学习页面
└── router/
└── index.ts # 路由配置
```
## 🔧 主要更改
### 1. VideoPlayer组件重构
- **替换播放器**: 从HTML5 video + HLS.js 改为 CKPlayer
- **新增功能**: 支持本地视频播放 (`useLocalVideo` prop)
- **保持兼容**: 保留原有的props和events接口
- **动态加载**: 自动加载CKPlayer脚本和样式
### 2. 新增Props
```typescript
interface Props {
videoUrl?: string // 视频URL
title?: string // 视频标题
description?: string // 视频描述
poster?: string // 封面图
autoplay?: boolean // 自动播放
showControls?: boolean // 显示控制栏
placeholder?: string // 占位符文本
useLocalVideo?: boolean // 使用本地视频 (新增)
}
```
### 3. 本地视频支持
当 `useLocalVideo` 为 `true` 时,组件会自动播放 `/video/first.mp4` 文件。
## 🚀 使用方法
### 基本用法
```vue
```
### 播放本地视频
```vue
```
### 支持的视频格式
- **MP4**: 直接播放
- **HLS (.m3u8)**: 使用hls.js插件
- **本地文件**: public/video/目录下的视频文件
## 📱 演示页面
### 本地视频演示页面
- 路径: `/local-video-demo`
- 功能: 专门演示本地视频播放
- 包含: 播放控制、状态显示、技术说明
## 🎮 控制方法
组件暴露的方法:
```typescript
// 播放控制
play() // 播放视频
pause() // 暂停视频
seek(time: number) // 跳转到指定时间
setVolume(volume: number) // 设置音量 (0-100)
retry() // 重试加载
```
## 📊 事件回调
```typescript
@play // 开始播放
@pause // 暂停播放
@ended // 播放结束
@timeupdate // 时间更新
@error // 播放错误
```
## 🔄 迁移指南
### 从旧版VideoPlayer迁移
1. **无需更改**: 现有的props和events保持兼容
2. **新功能**: 可选择使用 `useLocalVideo` 播放本地视频
3. **性能提升**: CKPlayer提供更好的播放性能和兼容性
### 示例迁移
```vue
```
## 🛠️ 技术特性
- **自动脚本加载**: 动态加载CKPlayer资源
- **格式检测**: 自动识别视频格式并选择合适的播放方式
- **响应式设计**: 支持桌面端和移动端
- **错误处理**: 完善的错误处理和重试机制
- **内存管理**: 组件销毁时自动清理资源
## 🎨 样式定制
CKPlayer样式可通过CSS覆盖:
```css
:deep(.ckplayer) {
/* 自定义播放器样式 */
}
```
## 📝 注意事项
1. **文件路径**: 本地视频文件需放在 `public/video/` 目录下
2. **跨域问题**: 外部视频URL需要支持跨域访问
3. **浏览器兼容**: CKPlayer支持现代浏览器
4. **性能优化**: 大视频文件建议使用CDN或流媒体服务
## 🔍 调试
开发时可以通过浏览器控制台查看详细的加载和播放日志:
```javascript
// 查看CKPlayer初始化日志
console.log('CKPlayer initialized successfully')
// 查看视频URL变化
console.log('VideoPlayer: 视频URL变化:', newUrl)
```
## 🚀 下一步
- 可以添加更多本地视频文件到 `public/video/` 目录
- 可以扩展组件支持播放列表功能
- 可以添加字幕支持
- 可以集成视频分析和统计功能