集成并初始化 SDK
更新时间: 2024/10/17 11:23:31
本文介绍 iOS 端快速集成并初始化 NERoom SDK 的操作步骤,帮助您快速集成并初始化 NERoom SDK。
开发环境要求
在开始运行工程之前,请您准备以下开发环境:
- Xcode 10 及以上版本。
- iOS 12.0 及以上版本的 iOS 设备。
前提条件
- 已 创建应用。
- 已 开通 NERoom 房间组件。
NERoom SDK 目录结构
SDK 动态库推荐放置在 libs/ 目录。
文件/文件夹名称 | 是否必选 | 说明 |
---|---|---|
NERtcSDK.framework | 是 | 音视频库。 |
NMCBasicModuleFramework.framework | 是 | 基础模块库。 |
NERtcnn.framework | 是 | 神经网络库(自 V1.14.0 起提供,以实现插件化)。 |
NIMSDK.framework | 是 | IM 即时通讯基础模块库。 |
NIMNOS.framework | 是 | IM NOS 文件存储库。 |
NERtcBeauty.framework | 否 | 美颜(自 V1.14.0 起提供,以实现插件化)。 |
NERtcFaceDetect.framework | 否 | 人脸检测(自 V1.14.0 起提供,以实现插件化)。 |
NERtcPersonSegment.framework | 否 | 背景分割(自V1.14.0 起提供,以实现插件化)。 |
NERtcAiDenoise.framework | 否 | AI 降噪(自 V1.14.0 起提供,以实现插件化)。 |
NERtcAiHowling.framework | 否 | AI 啸叫检测(自 V1.14.0 起提供,以实现插件化)。 |
实现步骤
步骤1:集成 NERoom SDK
通过 CocoaPods 集成 NERoom SDK。
请确保您的 Mac 已经安装 Ruby 环境。
-
安装 CocoaPods。
在终端窗口中输入如下命令:
sudo gem install cocoapods
-
创建 Podfile 文件。
从 Terminal 中进入您所创建项目所在路径,运行以下命令创建
Podfile
文件。pod init
-
编辑 Podfile 文件。
# platform :ios, '10.0' target '{YourApp}' do pod 'NERoomKit', '~> {version}' end
- YourApp:您的 Target 名称。
- version:待集成的 NERoom SDK 版本号。
NERoom V1.14.0 版本起,支持以插件化的方式按需加载子模块,以便 缩小包体积。
包含:基础模块、美颜、音频等。
方式1:
pod 'NERoomKit', '{version}', :subspecs => ['Base', 'Beauty', 'Segment', 'Audio']
方式2:
pod 'NERoomKit/Base', '{version}' pod 'NERoomKit/Beauty', '{version}' pod 'NERoomKit/Segment', '{version}' pod 'NERoomKit/Audio', '{version}'
subspecs
中请填入待引入的动态库对应的值,具体说明如下表所示。功能/插件 subspecs
的值framework
动态库音视频 + IM Base
必选基础库: NERtcSDK.framework
NMCBasicModuleFramework.framework
NERtcnn.framework
NIMSDK.framework
NIMNOS.framework
美颜 + 人脸识别 Beauty
- 美颜库:
NERtcBeauty.framework
- 人脸检测库:
NERtcFaceDetect.framework
虚拟背景 Segment
背景分割库: NERtcPersonSegment.framework
AI降噪 + AI 啸叫检测 Audio
- AI降噪库:
NERtcAiDenoise.framework
- AI 啸叫检测库:
NERtcAiHowling.framework
-
执行以下命令查询本地库版本。
pod search NERoomKit
-
若不是最新版本,可以执行以下命令更新本地库版本。
pod repo update
-
执行以下命令安装安装 NERoom SDK。
pod install
命令执行完毕后,会生成
*.xcworkspace
文件,表示 SDK 集成完成。
步骤2:添加媒体设备权限
- 在 Signing & Capabilities 页面,打开后台音频权限。
为保障应用进入手机后台之后,SDK 在后台能继续处理音频流,使通话不中断,请打开后台音频权限。
-
编辑
info.plist
文件,授权麦克风、摄像头。使用 SDK 的音视频功能,需要授权麦克风和摄像头的使用权限。请在 App 的
Info.plist
中设置以下两项。- Privacy - Microphone Usage Description,并填入麦克风使用目的提示语。
- Privacy - Camera Usage Description,并填入摄像头使用目的提示语。
步骤3:导入 NERoom SDK
在项目需要使用 NERoom API 的文件里引入 NERoom 的头文件。
-
Objective-C 代码中,引入 Swift 头文件的示例代码如下:
#import <NERoomKit/NERoomKit-Swift.h>
-
Swift 代码中,引入 Swift 头文件的示例代码如下:
import NERoomKit
步骤4:初始化 NERoom SDK
-
若您使用 公有云 环境,则参考以下示例代码进行初始化。
国内环境如果您的 AppKey 对应的服务区域是国内,初始化 NERoom SDK 的示例代码如下:
let options = NERoomKitOptions(appKey: "appKey") NERoomKit.shared().initialize(options: options) { code, str, _ in if code == 0 { // 初始化成功 } else { // 初始化失败 } }
海外环境如果您的 AppKey 对应的服务区域是海外,初始化 NERoom SDK 的示例代码如下:
let options = NERoomKitOptions(appKey: "appKey") options.extras = ["serverUrl": "https://roomkit-sg.netease.im"] let serverConfig = NEServerConfig() serverConfig.imServerConfig = NEIMServerConfig() serverConfig.roomKitServerConfig = NERoomKitServerConfig() serverConfig.roomKitServerConfig?.roomServer = "https://roomkit-sg.netease.im" serverConfig.imServerConfig?.lbs = "https://lbs.netease.im/lbs/conf.jsp" serverConfig.imServerConfig?.link = "link-sg.netease.im:7000" options.serverConfig = serverConfig NERoomKit.shared().initialize(options: options) { code, str, _ in if code == 0 { // 初始化成功 } else { // 初始化失败 } }
- 在调用初始化方法时,需要启动应用并监听到网络连接后,再调用初始化方法,否则会调用失败。
- 公共云的初始化 SDK 不能在 AppDelegate 的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中进行初始化。
:::
-
若您使用 私有化 环境,则参考以下步骤进行初始化。
方式1:通过 serverUrl 设置(推荐)调用
initialize
方法初始化 NERoom 时,配置NERoomKitOptions
的serverUrl
参数为私有化服务器地址。示例代码如下:
let options = NERoomKitOptions(appKey: "appKey") options.serverUrl = "私有化 NERoom URL" NERoomKit.shared().initialize(options: options) { code, msg, _ in if code == 0 { // 初始化成功 } else { // 初始化失败 } }
方式2:通过配置文件设置私有云服务器部署完成后,网易云信会提供给您对应的 NERoom 私有化配置文件(JSON 类型)。您在初始化 NERoom SDK 时,需要进行相关的配置,以便 SDK 能接入到目标私有云服务器上。具体配置步骤如下:
-
将配置文件重命名为
xkit_server.config
,并在构建项目前将配置文件添加到工程中 APP Target 所在的根目录下(即Info.plist
文件所在目录)。同时,您也需要将上述配置文件添加进主 Target 的打包资源配置项中,以确保该文件会打包至 APP 中,否则运行时将无法找到该文件,具体操作方法如下图所示。
-
调用
initialze
方法初始化 NERoom SDK 时,配置xkit_server.config
的useAssetServerConfig
参数为true
。示例代码如下:
swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { /// 读取本地私有化配置文件的形式进行设置,需要在bundle中放置'xkit_server.config'文件 let options = NERoomKitOptions(appKey: "appKey") options.useAssetServerConfig = true return options NERoomKit.shared().initialize(options: fetchPrivateOptionsWithReadLocalFile()) { code, msg, _ in if code == 0 { // 初始化成功 } else { // 初始化失败 } } }
在私有化场景中,请在 Appdelete 的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中,进行初始化。:::
-
常见问题处理
自 V1.14.0 版本起,如果项目内单独引用了NERtcSDK、NIMSDK_LITE库,与 NERoomKit 依赖的库引发冲突,您可以手工指定NERtcSDK、NIMSDK_LITE的版本号。
示例代码如下:
// 使用方式1
pod 'NERoomKit', '~> 1.14.0', :subspecs => ['Base_Special', 'Beauty_Special', 'Segment_Special', 'Audio_Special']
// 使用方式2
pod 'NERoomKit/Base_Special', '~> 1.14.0'
pod 'NERoomKit/Beauty_Special', '~> 1.14.0'
pod 'NERoomKit/Segment_Special', '~> 1.14.0'
pod 'NERoomKit/Audio_Special', '~> 1.14.0'
pod 'NERtcSDK', '{指定的版本号}', :subspecs => ['RtcBasic', ...]
pod 'NIMSDK_LITE', '{指定的版本号}'