跳到主要内容

平台与跨端

WebRTC 在浏览器是一回事,跨端落地是另一回事。本目录给出浏览器矩阵、libwebrtc、移动原生、小程序与 uni-app 的实际差异。

阅读顺序(计划)

顺序文件解决的问题
1浏览器兼容矩阵.mdChrome/Firefox/Safari/Edge 与 WebView
2iOS-WKWebView差异.mdplaysinline、自动播放、内存限制
3移动原生libwebrtc.mdiOS Framework、Android AAR、编译
4ReactNative与Flutter.mdreact-native-webrtc、flutter_webrtc
5微信小程序方案.mdlive-pusher / live-player + TRTC
6uni-app跨端策略.md条件编译,按端选 SDK

平台支持总览(2026-06)

平台原生 WebRTC API备选方案
Chrome / Edge✅ 完整
Firefox✅ 完整
Safari macOS / iOS✅(部分 API 滞后)
Android WebView✅ Chromium 同步
iOS WKWebView✅(iOS 14.3+)
Electron✅ Chromium 同步
微信小程序live-pusher/player + TRTC
支付宝小程序蚂蚁实时音视频
抖音小程序厂商 SDK
鸿蒙⚠️ 实验性

微信小程序的特殊地位

国内业务绕不开微信小程序。微信不支持 WebRTC API,但提供:

  • <live-pusher> / <live-player>:基于 RTMP/HLS 的标签,延迟 1~3s,不是真正 P2P。
  • 腾讯 TRTC 小程序版:基于 WebRTC 协议族但用厂商封装,需腾讯账号。
  • 声网 / 即构:同类替代。

跨端架构通常是:

应用层接口(你的统一 SDK)
├── Web → 原生 WebRTC
├── 移动原生 → libwebrtc / TRTC SDK
└── 小程序 → TRTC / 声网 小程序 SDK

详见 uni-app跨端策略.mdL6-跨端连麦SDK

浏览器互通踩坑速查

现象涉及平台原因
Safari 收不到 VP9iOS < 16Safari 早期只硬解 H.264
Firefox 没有 TWCC部分版本检查 extmap
iOS Safari 自动暂停全版本锁屏 / 切到后台
Android WebView 高耗电默认软件渲染
Edge 旧版(基于 EdgeHTML)不支持< 2020已无业务考虑必要

反模式

反模式后果
不区分平台直接用 RTCPeerConnection小程序直接报错
假设 Safari 与 Chrome 100% 一致在 iOS 上各种小问题
把 H.264 profile 写死 64...(高)Safari 互通失败
WebView 内嵌外站 iframe 不加 allow=...摄像头权限被拒
移动端不监听 mute/unmute锁屏唤醒后画面冻死

权威资料