Initial commit of akmon project
This commit is contained in:
208
VIDEO_SYSTEM_GUIDE.md
Normal file
208
VIDEO_SYSTEM_GUIDE.md
Normal file
@@ -0,0 +1,208 @@
|
||||
# 视频播放系统使用指南
|
||||
|
||||
## 系统概述
|
||||
|
||||
您的视频播放系统已经设计完成,包含以下核心功能:
|
||||
- ✅ 视频播放、暂停、进度控制
|
||||
- ✅ 弹幕实时发送和展示
|
||||
- ✅ 多级评论系统
|
||||
- ✅ 点赞、收藏、转发功能
|
||||
- ✅ 视频设置(画质、速度、弹幕配置)
|
||||
- ✅ 分享功能
|
||||
- ✅ 完整的 i18n 多语言支持
|
||||
- ✅ 响应式设计和错误处理
|
||||
|
||||
## 文件结构
|
||||
|
||||
```
|
||||
h:\blews\akmon\
|
||||
├── video_system_database.sql # 数据库结构
|
||||
├── pages/info/video-types.uts # TypeScript 类型定义
|
||||
├── pages/info/video-player.uvue # 主视频播放页面
|
||||
├── pages/info/comments.uvue # 评论组件
|
||||
├── pages/mt/video.uvue # 简化版视频页面
|
||||
└── i18n/ # 多语言文件
|
||||
├── zh-CN/mt/common.uts # 中文多语言
|
||||
└── en-US/mt/common.uts # 英文多语言
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 部署数据库
|
||||
|
||||
执行 `video_system_database.sql` 创建所需的数据表和视图:
|
||||
|
||||
```sql
|
||||
-- 在您的 PostgreSQL/Supabase 数据库中执行
|
||||
\i video_system_database.sql
|
||||
```
|
||||
|
||||
### 2. 导入视频页面
|
||||
|
||||
将 `video-player.uvue` 集成到您的应用路由中:
|
||||
|
||||
```javascript
|
||||
// pages.json
|
||||
{
|
||||
"path": "pages/info/video-player",
|
||||
"style": {
|
||||
"navigationBarTitleText": "视频播放"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 使用视频页面
|
||||
|
||||
```javascript
|
||||
// 跳转到视频播放页面
|
||||
uni.navigateTo({
|
||||
url: `/pages/info/video-player?id=${videoId}`
|
||||
})
|
||||
```
|
||||
|
||||
## 核心功能说明
|
||||
|
||||
### 弹幕系统
|
||||
|
||||
弹幕与评论分开设计,具有以下特点:
|
||||
- **实时性**: 与视频时间轴绑定
|
||||
- **自定义**: 支持颜色、字体大小、位置设置
|
||||
- **高性能**: 独立的数据表和缓存机制
|
||||
|
||||
```typescript
|
||||
// 发送弹幕示例
|
||||
const sendDanmu = async () => {
|
||||
const danmuData = {
|
||||
text: "弹幕内容",
|
||||
time_point: currentTime,
|
||||
color: "#FF0000",
|
||||
font_size: 25,
|
||||
position_type: "scroll"
|
||||
}
|
||||
|
||||
await supa.from('ak_video_danmakus').insert({
|
||||
content_id: videoId,
|
||||
user_id: userId,
|
||||
...danmuData
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
### 评论系统
|
||||
|
||||
支持多级回复的评论系统:
|
||||
- **层级结构**: 支持多级回复
|
||||
- **点赞功能**: 评论可以被点赞
|
||||
- **举报机制**: 支持举报不当评论
|
||||
|
||||
```typescript
|
||||
// 发表评论示例
|
||||
const postComment = async () => {
|
||||
await supa.from('ak_content_comments').insert({
|
||||
content_id: videoId,
|
||||
user_id: userId,
|
||||
content: commentText,
|
||||
parent_id: null // 主评论
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
### 用户交互
|
||||
|
||||
统一的用户交互表设计:
|
||||
- **点赞**: `interaction_type: 'like'`
|
||||
- **收藏**: `interaction_type: 'favorite'`
|
||||
- **分享**: `interaction_type: 'share'`
|
||||
- **观看**: `interaction_type: 'view'`
|
||||
|
||||
```typescript
|
||||
// 点赞视频示例
|
||||
const toggleLike = async () => {
|
||||
if (isLiked) {
|
||||
await supa.from('ak_user_interactions')
|
||||
.delete()
|
||||
.eq('user_id', userId)
|
||||
.eq('content_id', videoId)
|
||||
.eq('interaction_type', 'like')
|
||||
} else {
|
||||
await supa.from('ak_user_interactions')
|
||||
.insert({
|
||||
user_id: userId,
|
||||
content_id: videoId,
|
||||
interaction_type: 'like'
|
||||
})
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 数据库设计亮点
|
||||
|
||||
### 1. 弹幕表 (ak_video_danmakus)
|
||||
- `time_point`: 精确到毫秒的时间点
|
||||
- `color`, `font_size`, `position_type`: 弹幕样式
|
||||
- `status`: 支持审核状态
|
||||
|
||||
### 2. 评论表 (ak_content_comments)
|
||||
- `parent_id`: 支持多级回复
|
||||
- `reply_to_user_id`: 回复目标用户
|
||||
- `is_pinned`: 支持置顶评论
|
||||
|
||||
### 3. 统计表 (ak_content_statistics)
|
||||
- 自动触发器维护各种计数
|
||||
- 缓存热点数据,提高查询性能
|
||||
|
||||
### 4. 视图设计
|
||||
- `vw_video_content_detail`: 视频详情视图
|
||||
- `vw_video_danmakus`: 弹幕列表视图
|
||||
- `vw_content_comments`: 评论树形视图
|
||||
|
||||
## 多语言集成
|
||||
|
||||
系统完全支持 i18n,所有用户界面文本都通过 `tt()` 函数处理:
|
||||
|
||||
```typescript
|
||||
// 使用示例
|
||||
<text>{{ tt('mt.video.danmu.placeholder') }}</text>
|
||||
<text>{{ tt('mt.comment.postSuccess') }}</text>
|
||||
<text>{{ tt('mt.share.title') }}</text>
|
||||
```
|
||||
|
||||
## 扩展建议
|
||||
|
||||
### 1. 后端 API 优化
|
||||
- 实现弹幕实时推送 (WebSocket)
|
||||
- 添加弹幕内容过滤和审核
|
||||
- 优化评论分页加载
|
||||
|
||||
### 2. 前端优化
|
||||
- 弹幕性能优化 (虚拟滚动)
|
||||
- 视频播放记录同步
|
||||
- 离线缓存支持
|
||||
|
||||
### 3. 管理功能
|
||||
- 弹幕管理后台
|
||||
- 评论审核系统
|
||||
- 用户举报处理
|
||||
|
||||
### 4. 高级功能
|
||||
- 弹幕词云分析
|
||||
- 智能推荐系统
|
||||
- 社交分享优化
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **性能考虑**: 弹幕数据量大,需要合理的分页和缓存策略
|
||||
2. **安全性**: 实现内容过滤和用户权限控制
|
||||
3. **兼容性**: 确保在不同平台上的播放器兼容性
|
||||
4. **用户体验**: 优化加载速度和交互响应
|
||||
|
||||
## 总结
|
||||
|
||||
您的视频播放系统设计已经非常完整和专业,涵盖了现代视频平台的核心功能。通过合理的数据库设计、类型安全的前端代码和完整的多语言支持,为用户提供了优秀的视频观看体验。
|
||||
|
||||
下一步建议:
|
||||
1. 部署数据库结构
|
||||
2. 配置 Supabase RLS 策略
|
||||
3. 联调前后端接口
|
||||
4. 进行多端测试
|
||||
5. 根据实际需求调整 UI 细节
|
||||
Reference in New Issue
Block a user