2.2 KiB
2.2 KiB
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 - 解决方案:
- 自动回退:系统会自动回退到截图方式(WebSocket + Base64 图片)
- 原生插件:如需在 App 中使用 WebRTC,需要开发原生插件(Android MediaProjection API / iOS ReplayKit)
❌ 小程序环境(不支持)
- 微信小程序:不支持 WebRTC
- 其他小程序:不支持 WebRTC
- 解决方案:使用截图方式
技术实现
H5 环境
// 使用 getDisplayMedia API
const stream = await navigator.mediaDevices.getDisplayMedia({
video: { width: { ideal: 1920 }, height: { ideal: 1080 }, frameRate: { ideal: 30 } },
audio: false
})
App 环境(自动回退)
// 系统会自动检测平台并回退到截图方式
// #ifdef APP-PLUS
// 自动回退到 monitor.js(截图方式)
// #endif
性能对比
| 特性 | WebRTC (H5) | 截图方式 (App/回退) |
|---|---|---|
| 延迟 | 低(<100ms) | 较高(500ms-3s) |
| 画质 | 高(可配置) | 中等(压缩后) |
| 带宽 | 中等 | 较高(Base64 编码) |
| 流畅度 | 流畅(30fps) | 一般(取决于间隔) |
使用建议
- H5 环境:优先使用 WebRTC,提供最佳体验
- App 环境:自动使用截图方式,无需额外配置
- 混合部署:系统会自动检测平台并选择最佳方案
未来改进方向
- 原生插件开发:为 Android/iOS 开发原生屏幕录制插件
- 性能优化:优化截图方式的压缩和传输效率
- 自适应:根据网络条件自动调整画质和帧率