guoyu/_已清理文件备份_周六 22512/md/WebRTC平台支持说明.md

64 lines
2.2 KiB
Markdown
Raw Normal View History

2025-12-06 20:11:36 +08:00
# WebRTC 平台支持说明
## 支持的平台
### ✅ H5 浏览器(完全支持)
- **桌面浏览器**Chrome、Firefox、Edge、Safari 等主流浏览器
- **移动浏览器**iOS Safari、Android Chrome 等
- **功能**:完整的 WebRTC 屏幕共享功能
- **实现方式**:使用 `getDisplayMedia()` API
### ⚠️ uni-app App 环境(部分支持)
- **Android App**:不支持 WebRTC 屏幕共享,自动回退到截图方式
- **iOS App**:不支持 WebRTC 屏幕共享,自动回退到截图方式
- **原因**uni-app 的 App 环境不支持 `getDisplayMedia()` API
- **解决方案**
1. **自动回退**系统会自动回退到截图方式WebSocket + Base64 图片)
2. **原生插件**:如需在 App 中使用 WebRTC需要开发原生插件Android MediaProjection API / iOS ReplayKit
### ❌ 小程序环境(不支持)
- **微信小程序**:不支持 WebRTC
- **其他小程序**:不支持 WebRTC
- **解决方案**:使用截图方式
## 技术实现
### H5 环境
```javascript
// 使用 getDisplayMedia API
const stream = await navigator.mediaDevices.getDisplayMedia({
video: { width: { ideal: 1920 }, height: { ideal: 1080 }, frameRate: { ideal: 30 } },
audio: false
})
```
### App 环境(自动回退)
```javascript
// 系统会自动检测平台并回退到截图方式
// #ifdef APP-PLUS
// 自动回退到 monitor.js截图方式
// #endif
```
## 性能对比
| 特性 | WebRTC (H5) | 截图方式 (App/回退) |
|------|------------|-------------------|
| 延迟 | 低(<100ms | 较高500ms-3s |
| 画质 | 高(可配置) | 中等(压缩后) |
| 带宽 | 中等 | 较高Base64 编码) |
| 流畅度 | 流畅30fps | 一般(取决于间隔) |
## 使用建议
1. **H5 环境**:优先使用 WebRTC提供最佳体验
2. **App 环境**:自动使用截图方式,无需额外配置
3. **混合部署**:系统会自动检测平台并选择最佳方案
## 未来改进方向
1. **原生插件开发**:为 Android/iOS 开发原生屏幕录制插件
2. **性能优化**:优化截图方式的压缩和传输效率
3. **自适应**:根据网络条件自动调整画质和帧率