guoyu/Study-Vue-redis/WebRTC平台支持说明.md
2025-12-03 18:58:36 +08:00

64 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. **自适应**根据网络条件自动调整画质和帧率