集成sdk -奇异果体育app竞彩官网下载
更新时间:2022-08-09
说明
- 提供的项目以 xcode 13.0 为例
准备环境
- xcode 9.0 或以上版本
- 支持 ios 9.0 或以上版本的 ios 设备
- 支持音视频功能的模拟器或真机
下载sdk
进入rtc文档中心,点击“下载专区>”,即可下载ios客户端。
集成sdk
创建一个ios项目,若已有 ios 项目,可以直接集成 sdk。此版本sdk提供静态库与动态库两种形式,选择其中一种集成即可。
添加 sdk 静态库文件
- 将文件夹内的 baidurtcroom.framework socketrocket.framework文件复制到项目文件夹下
- 打开 xcode,选择:项目 target -> build phases ->link binary with libraries,添加 sdk 静态库文件到项目。
添加 sdk 动态库文件
- 将dynamic文件夹内的 baidurtcroom.framework 文件复制到项目文件夹下
- 打开 xcode,使用
add files to "xxx"(xxx 为用户的项目名)
,添加 sdk 动态库文件到项目。- 打开 xcode,选择:项目 target -> general -> link binary with libraries,添加 baidurtcroom.framework,status 设置为 requied。
- 继续在 xcode 中,选择:项目 target -> general -> frameworks,libraries,and embedded content,将 baidurtcroom.framework设置为embed & sign
项目设置
- 打开 xcode,选择:项目 target -> general -> deployment target,设置 9.0 或以上版本。
- 继续在 xcode 中,选择:项目 target -> build settings -> build options -> setting,设置要编译的项目 target。
添加系统依赖库
其中 :
baidurtcroom 为 brtc sdk 主依赖库,必须添加;
bugly、socketrocket 为三方依赖库,必须添加;
其他 baidurtc 前缀 framework 为 brtc sdk 扩展模块依赖库,按需添加;
其余为系统依赖库,必须添加
使用扩展能力模块
brtc 自 v2.3 开始,拆分或添加部分功能到独立于主产物的扩展模块产物中,
接入方可按需和主产物一起集成,以使用相关能力。
现有扩展模块列表如下,版本列 表示使用该扩展能力时,同时集成的主产物所需满足的最小版本:
名称 | 描述 | 版本 | 能力 |
---|---|---|---|
baidurtcreplaykit | 屏幕分享 | v2.3 | 主产物使用 应用内屏幕分享、系统屏幕分享 能力必须依赖的模块 |
baidurtcbeauty | 美颜 | v2.3 | 采集视频前处理美颜,包括美白、磨皮、塑形 等 |
baidurtcaudioprocess | 音频处理 | v2.4 | 采集音频前处理,包括 人声变声 等 |
添加相机/麦克风权限
在info.plist文件中添加privacy相机/麦克风权限
添加background modes
在target -> signing & capabilities -> background modes中添加如下modes
使用美颜采集功能
- 集成美颜扩展模块 baidurtcbeauty.framework
- 需要配置其依赖库:libanakin_lite_static.a,并且target->build settings->other linker flags添加-objc与-force_load
- 添加美颜能力所需资源 bundle
- 使用美颜功能,需要奇异果体育app竞彩官网下载官网申请licenseid与对应的license授权文件,申请步骤如下:
- 进入奇异果体育app竞彩官网下载官网百度智能云,选择短视频sdk
- 选择立即使用,选择,填写项目信息,申请的功能权限,下载sdk
- 或直接进入,选择产品服务->智能视频sdk->选择申请license,填写相关信息,获取license
- 审核成功后,下载对应的license文件,将license文件放入到工程中
- 在appdelegate.mm中,添加如下代码,将licenseid替换自己申请的
#import
可参考短视频sdk集成申请license授权。
实现音视频通话
本节介绍如何实现音视频通话。视频通话的 api 调用时序见下图:
代码示例
1.在您的开发项目中导入头文件
#import
2.定义 rtc room hanlde 变量
@property (nonatomic, strong) baidurtcroomapi *rtcroomapi;
3.初始化 sdk, 返回 rtc room handle, 初始化的时候要带上 appid,token 串,和 delegate
3.1 内部采集
self.rtcroomapi = [[baidurtcroomapi alloc] initsdkwithappid:self.appid
tokenstr:self.tokenstr
delegate:self];
3.2 外部采集
- (bdcloudavrtcroomvideocapturesessionkit *)sessionkit{
if (!_sessionkit) {
bdcloudrtcroomavcapturesettings *rtckitsetting = [bdcloudrtcroomavcapturesettings defaultsetting];
rtckitsetting.appname = self.nibname;
rtckitsetting.appname = self.roomname;
rtckitsetting.rtcappid = self.appid;
rtckitsetting.rtctoken = self.tokenstr;
cmvideodimensions dimension;
dimension.width = [[rtcsettingsmodel sharedinstance] currentvideoresolutionwidthfromstore];
dimension.height = [[rtcsettingsmodel sharedinstance] currentvideoresolutionheightfromstore];
rtckitsetting.caputredimension = dimension;
_sessionkit = [[bdcloudavrtcroomvideocapturesessionkit alloc] initwithconfig:rtckitsetting delegate:self];
_sessionkit.avcapturesession.capturedelegate = self;
}
return _sessionkit;
}
具体代码可参考demo中的bdcloudavrtcroomvideocapturesessionkit.h文件
4.音视频参数设置:
rtcparametersettings *rps = [[rtcparametersettings alloc] init];
rps.videofps = 29;
rps.videowidth = 192;
rps.videoheight = 144;
rps.videobitrate = 300;
//使用外部采集。若 enable 外部采集,需实现 baiduvideocapturefactory 和 baiduvideocapturedevice 两种 protocol;其中 baiduvideocapturefactory delegate 需要通过 setvideocapturefactory 设置给 sdk.
rps.isenableexternalcapturer = yes;
[self.rtcroomapi setparamsettings:rps paramtype:rtc_video_param_settings_capture_mode];
//使用外部渲染,外部渲染远端视频画面。若 enable 外部渲染,需实现 baidurtcapirenderdelegate protocol, 并通过 setrenderdelegate 设置给 sdk.
rps.isenableexternalrender = yes;
[self.rtcroomapi setparamsettings:rps paramtype:rtc_video_param_settings_render_mode];
// audio capture sourece
rps.isenableexternalaudiodevice = yes;
[self.rtcroomapi setparamsettings:rps paramtype:rtc_audio_param_settings_device_mode];
//使用声音录制, 连麦时混合后的声音抛给用户处理。若 enable 本地采集和远端声音混功能,需实现 baidurtcapiaudiorecorddelegate protocol, 并通过 setaudiorecorddelegate 设置给 sdk
rps.isexportaudiorecordplayoutmix = yes;
[self.rtcroomapi setparamsettings:rps paramtype:rtc_param_settings_all];
- 视频显示 view 设置
//设置本地视频显示view
[self.rtcroomapi setlocaldisplay:_videocallview.localvideoview];
//设置远端用户视频显示view
[self.rtcroomapi setremotedisplay:videoinfo.videoview userid:rtcstreaminfo.userid];
- 登录房间
uint32_t tempuserid = [self getrandomnumber:1000 to:9000];
[self.rtcroomapi loginrtcroomwithroomname:self.roomname
userid:tempuserid
displayname:@"james"];
- 发布流
[self.rtcroomapi publishstreaming];
- 登出房间,结束音视频通话
[self.rtcroomapi logoutrtcroom];