实时音视频RTC

    集成SDK

    准备环境

    • Xcode 9.0 或以上版本
    • 支持 iOS 8.0 或以上版本的 iOS 设备
    • 支持音视频功能的模拟器或真机

    下载SDK

    进入RTC文档中心,点击“下载专区>客户端SDK下载”,即可下载iOS客户端。

    集成SDK

    创建一个iOS项目,若已有 iOS 项目,可以直接集成 SDK

    添加 SDK 动态库文件

    1. 将文件夹内的 BaiduRtcRoom.framework 文件复制到项目文件夹下
    2. 打开 Xcode,使用 Add Files to "xxx"(xxx 为用户的项目名),添加 SDK 动态库文件到项目。 image.png

    导入SDK

    注意,在下面的设置步骤中,请选择符合开发要求的 framework 文件。

    1. 打开 Xcode,选择:项目 TARGET -> General -> Embedded Binaries,添加 BaiduRtcRoom.framework。 image.png
    1. 继续在 Xcode 中,选择:项目 TARGET -> General -> Link Binary With Libraries,添加 BaiduRtcRoom.framework,Status 设置为 Requied。 image.png

    项目设置

    1. 打开 Xcode,选择:项目 TARGET -> General -> Deployment Target,设置 8.0 或以上版本。 image.png
    1. 继续在 Xcode 中,选择:项目 TARGET -> Build Settings -> Build Options -> Setting,设置要编译的项目 TARGET。 image.png

    添加系统依赖库

    集成 SDK 动态库,不需要额外添加其他系统依赖库。

    实现音视频通话

    本节介绍如何实现音视频通话。视频通话的 API 调用时序见下图:

    iOS_diagram.png

    代码示例

    1.在您的开发项目中导入头文件

        #import <BaiduRtcRoom/BaiduRtcRoom.h>  

    2.定义 rtc room hanlde 变量

        @property (nonatomic, strong) BaiduRtcRoomApi *rtcRoomApi;

    3.初始化 sdk, 返回 rtc room handle, 初始化的时候要带上 appid,token 串,和 delegate

        self.rtcRoomApi = [[BaiduRtcRoomApi alloc] initSDKWithAppID:self.appId
                                                            tokenStr:self.tokenStr
                                                            delegate:self];

    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;
        //使用外部渲染,外部渲染远端视频画面。若 enable 外部渲染,需实现 BaiduRtcApiRenderDelegate protocol, 并通过 setRenderDelegate 设置给 SDK.
        rps.isEnableExternalRender = YES;
        //使用声音录制, 连麦时混合后的声音抛给用户处理。若 enable 本地采集和远端声音混功能,需实现 BaiduRtcApiAudioRecordDelegate protocol, 并通过 setAudioRecordDelegate 设置给 SDK
        rps.isExportAudioRecordPlayoutMix = YES;
        [self.rtcRoomApi setParamSettings:rps paramType:RTC_PARAM_SETTINGS_ALL];
    1. 视频显示 view 设置
        [self.rtcRoomApi setLocalDisplay:_videoCallView.localVideoView];
        if (self.isMultiPersons) {
            [self.rtcRoomAp setRemoteDisplayGroup:_videoCallView.remoteVideoViewGroup];
        } else {
            [self.rtcRoomApi setRemoteDisplay:_videoCallView.remoteVideoView];
        }
    1. 登录房间
        uint32_t tempUserId = [self getRandomNumber:1000 to:9000];
        [self.rtcRoomApi loginRtcRoomWithRoomName:self.roomName
                                           userID:tempUserId
                                           userRole:RtcUserRolePulisher
                                          displayName:@"James"];
    1. 发布流
        [self.rtcRoomApi publishStreaming:YES];                        
    1. 登出房间,结束音视频通话
        [self.rtcRoomApi logoutRtcRoom];       
    上一篇
    概述
    下一篇
    API