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