初始化
在使用 SDK 其它功能前,必须先进行初始化。本文中将详细说明初始化的方法。
注意事项
- 必须在应用生命周期内调用初始化方法,只需要调用一 次。
准备 App Key
您必须拥有正确的 App Key,才能进行初始化。
您可以登录融云控制台,从服务管理页面,查看您已创建的各个应用的 App Key。
如果您拥有多个应用,请注意选择应用名称(下图中标号 1)。另外,融云的每个应用都提供用于隔离生产和开发环境的两套独立 App Key / Secret。在获取应用的 App Key 时,请注意区分环境(生产 / 开发,下图中标号 2)。
- 如果您并非应用创建者,我们建议在获取 App Key 时确认页面上显示的数据中心是否符合预期。
- 如果您尚未向融云申请应用上线,仅可使用开发环境。
初始化之前
部分配置必须在初始化之前完成,否则 SDK 功能无法正常工作。
- 开通音视频服务:音视频服务需要手动开通。请根据应用的具体业务类型,开通对应的音视频服务。详细说明请参见开通音视频服务。
- 海外数据中心:因为音视频业务依赖即时通讯业务 IMLib 提供信令通道 ,如果您的应用使用海外数据中心,必须在初始化之前修改 IMLib SDK 默认连接的服务地址为海外数据中心地址。否则 SDK 默认连接中国国内数据中心服务地址。详细说明请参见配置海外数据中心服务地址。
权限配置
iOS 需要在项目的 Info.plist 中配置 App 权限 - iOS 隐私信息访问的许可描述中加入摄像头和麦克风的使用描述。
<key>NSCameraUsageDescription</key>
<string>摄像头权限说明</string>
<key>NSMicrophoneUsageDescription</key>
<string>麦克风权限说明</string>
Android 需要在项目的 AndroidManifest.xml 中 App 权限配置 - Android 权限配置中添加相机、麦克风、读外部文件和网络的使用权限 。
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
在 Android 6.0 以上系统中麦克风、读外部文件和相机权限需动态申请。例如:
public class MainActivity extends ReactActivity {
static String[] PERMISSIONS=new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkDangerousPermissions(PERMISSIONS);
}
public void checkDangerousPermissions(String[] permissions) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return;
}
for (String permission : permissions) {
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(permissions, 100);
}
}
}
}
初始化 IMLib
音视频 SDK 是基于即时通信 SDK 作为信令通道的,所以要先初始化 IM SDK。如果不换 AppKey,在整个应用生命周期中,初始化一次即可。
/// IMLib 初始化
imEngine = RCIMIWEngine.create('从控制台申请的 AppKey', options);