# WebRTC 常见问题
# 1. FinClip 小程序 SDK 是否支持 WebRTC?
问:我想在小程序中使用 WebRTC 的相关能力,FinClip 支持吗?
答:支持,使用时请确保 SDK 及手机系统满足以下条件:
SDK 版本要求 | 手机系统要求 | |
---|---|---|
iOS | FinClip 小程序 SDK 版本2.33.9 及以上 | iOS 系统版本14.3 及以上 |
Android | FinClip 小程序 SDK 版本2.24.1 及以上 | Android 系统版本6.0 及以上 |
提示
- iOS 系统版本
2.24.4 ~ 2.27.1
也支持 WebRTC,但是在 HTML5 中读取 UserAgent 时,会偶现不包含 Provider/finogeeks (miniprogram; FinChat; runtimeSdkVersion/2.27.1) 的情况,建议使用2.33.9
以及以上版本。 - Android 支持情况请查看后文中的详细说明。
# 2. 如何在 FinClip 小程序 SDK 内使用 WebRTC?
WebRTC 的本质能力,是在网页浏览器中实时进行语音或视频对话,FinClip 小程序 SDK 是支持 WebView 打开指定 HTML5 页面的。
因此,在使用包含 WebRTC 相关能力的 HTML5 页面时,开发者只需关注如下问题:
- WebRTC 的中转服务器业务域名需要进行配置 ,见 功能介绍-域名配置;
- 使用包含音视频功能的 HTML5 前,需要提前申请摄像头和麦克风权限(建议由 App 先申请权限)。
FinClip 小程序 SDK 并未声明录音权限,因此需要 App 添加权限声明。
- iOS 项目中,需要在
info.plist
文件中添加权限配置声明,见这里; - Android 项目中,需要在
AndroidManifest.xml
文件中添加权限配置声明,见如下示例:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
# 3. App 权限与 SDK 内小程序的关系如何?
情形一:App 已经向用户成功获取了摄像头、麦克风权限
- 此时在 FinClip 小程序 SDK 内加载包含 WebRTC 的 HTML5 时,就可以直接采集音视频了;
- 同时,HTML5 内的功能也可以弹出 Alert,询问用户是否允许采集摄像头、是否允许使用麦克风,从而实现单独控制采集的目标。
情形二:如果用户未给予 App 开启摄像头、麦克风权限
- 此时,SDK 加载包含 WebRTC 功能的 HTML5 时,将无法采集音视频。
# 4. FinClip Android SDK 对 WebRTC 支持情况如何?
- FinClip Android SDK 对 WebRTC 的支持源于 Android 原生 WebView 对 WebRTC 的支持。
- 根据 Android 开发者平台关于 Android 5.0 版本 WebView 的相关描述,WebView 自 Android 5.0 版本起添加了对 WebRTC 的支持。相关描述 (opens new window)
- 云测数据表明,Android 5.0 机型对于 WebRTC 官方示例 AppRTC 还不能正常支持。
原因在于 Android 5.0 WebView 内核由 Android System WebView APK 提供,而 Android 5.0 云测设备包含的 Android System WebView APK 版本都比较低。 - Android 6.0 及以上版本机型云测几乎全部通过对 AppRTC 支持。因为可以认定为 FinClip Android SDK 对 WebRTC 支持的最低 Android 系统版本为 Android 6.0。