138 lines
3.3 KiB
Markdown
138 lines
3.3 KiB
Markdown
|
|
# 短视频展示平台
|
|||
|
|
|
|||
|
|
一个现代化的短视频展示平台,支持自适应布局、弹幕功能和后台管理。
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
### 前端功能
|
|||
|
|
- ✅ 响应式设计,完美适配桌面端和移动端
|
|||
|
|
- ✅ 主流视频平台风格的UI设计
|
|||
|
|
- ✅ 首页视频推荐展示
|
|||
|
|
- ✅ 分类筛选(推荐、热门、萌宠、美食、旅行、科技、风景)
|
|||
|
|
- ✅ 视频播放页面
|
|||
|
|
- ✅ 实时弹幕系统
|
|||
|
|
- ✅ 弹幕颜色选择
|
|||
|
|
- ✅ 点赞功能
|
|||
|
|
- WebSocket实时弹幕推送
|
|||
|
|
|
|||
|
|
### 后台管理
|
|||
|
|
- ✅ 管理员登录认证
|
|||
|
|
- ✅ 视频管理(增删改查)
|
|||
|
|
- ✅ 数据统计面板
|
|||
|
|
- ✅ 视频列表管理
|
|||
|
|
|
|||
|
|
### 技术栈
|
|||
|
|
- **前端**: HTML5 + CSS3 + JavaScript (原生)
|
|||
|
|
- **后端**: Node.js + Express
|
|||
|
|
- **实时通信**: WebSocket
|
|||
|
|
- **数据存储**: JSON文件(可轻松迁移至数据库)
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 安装依赖
|
|||
|
|
```bash
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启动服务
|
|||
|
|
```bash
|
|||
|
|
# 方式1: 使用启动脚本
|
|||
|
|
./start.sh
|
|||
|
|
|
|||
|
|
# 方式2: 直接运行
|
|||
|
|
node app.js
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 访问地址
|
|||
|
|
- **前台首页**: http://localhost:16035
|
|||
|
|
- **后台管理**: http://localhost:16035/admin
|
|||
|
|
|
|||
|
|
### 默认管理员账号
|
|||
|
|
- 用户名: `admin`
|
|||
|
|
- 密码: `admin123`
|
|||
|
|
|
|||
|
|
## 停止服务
|
|||
|
|
```bash
|
|||
|
|
./stop.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
video-platform/
|
|||
|
|
├── app.js # 主程序入口
|
|||
|
|
├── package.json # 项目配置
|
|||
|
|
├── start.sh # 启动脚本
|
|||
|
|
├── stop.sh # 停止脚本
|
|||
|
|
├── public/ # 静态文件
|
|||
|
|
│ ├── index.html # 首页
|
|||
|
|
│ ├── video.html # 视频播放页
|
|||
|
|
│ ├── admin-login.html # 后台登录页
|
|||
|
|
│ ├── admin-panel.html # 后台管理面板
|
|||
|
|
│ ├── css/
|
|||
|
|
│ │ └── style.css # 样式文件
|
|||
|
|
│ └── js/
|
|||
|
|
│ ├── app.js # 主逻辑
|
|||
|
|
│ └── player.js # 播放器和弹幕逻辑
|
|||
|
|
├── data/ # 数据存储
|
|||
|
|
│ ├── videos.json # 视频数据
|
|||
|
|
│ ├── users.json # 用户数据
|
|||
|
|
│ └── comments.json # 弹幕数据
|
|||
|
|
├── logs/ # 日志目录
|
|||
|
|
└── views/ # 视图模板(预留)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## API接口
|
|||
|
|
|
|||
|
|
### 前台API
|
|||
|
|
- `GET /api/videos` - 获取视频列表
|
|||
|
|
- `GET /api/videos/:id` - 获取单个视频详情
|
|||
|
|
- `POST /api/videos/:id/like` - 点赞视频
|
|||
|
|
- `GET /api/videos/:id/danmaku` - 获取弹幕列表
|
|||
|
|
- `POST /api/videos/:id/danmaku` - 发送弹幕
|
|||
|
|
|
|||
|
|
### 后台API
|
|||
|
|
- `POST /api/admin/login` - 管理员登录
|
|||
|
|
- `POST /api/admin/logout` - 管理员登出
|
|||
|
|
- `GET /api/admin/check` - 检查登录状态
|
|||
|
|
- `POST /api/admin/videos` - 添加视频
|
|||
|
|
- `PUT /api/admin/videos/:id` - 更新视频
|
|||
|
|
- `DELETE /api/admin/videos/:id` - 删除视频
|
|||
|
|
|
|||
|
|
## 弹幕系统
|
|||
|
|
|
|||
|
|
弹幕通过WebSocket实现实时推送:
|
|||
|
|
- 支持自定义颜色
|
|||
|
|
- 随机垂直位置
|
|||
|
|
- 平滑滚动动画
|
|||
|
|
- 时间同步播放
|
|||
|
|
|
|||
|
|
## 自定义配置
|
|||
|
|
|
|||
|
|
### 修改端口
|
|||
|
|
在 `app.js` 中修改 `PORT` 常量:
|
|||
|
|
```javascript
|
|||
|
|
const PORT = 16035;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 修改管理员密码
|
|||
|
|
首次运行后,编辑 `data/users.json` 文件。
|
|||
|
|
|
|||
|
|
## 浏览器兼容性
|
|||
|
|
|
|||
|
|
- Chrome 80+
|
|||
|
|
- Firefox 75+
|
|||
|
|
- Safari 13+
|
|||
|
|
- Edge 80+
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 生产环境建议使用反向代理(如 Nginx)
|
|||
|
|
2. 建议迁移到数据库存储(如 MongoDB、MySQL)
|
|||
|
|
3. 建议添加HTTPS支持
|
|||
|
|
4. 建议添加视频上传功能
|
|||
|
|
5. 建议添加用户注册登录系统
|
|||
|
|
|
|||
|
|
## License
|
|||
|
|
|
|||
|
|
MIT
|