iOS端集成与使用

您可以阅读本文,了解iOS端的集成操作。

前提条件

开发前的环境要求如下表所示。

类别

说明

系统版本

支持iOS 10.0及以上。

Xcode版本支持

支持Xcode 9.0及以上。

您需要集成并启动服务端,具体操作,请参见服务端集成

Demo运行指引

  1. GitHub下载Demo源代码,iOS端代码目录结构如下。iOS DEMO

  2. 终端命令行执行pod install,安装Masonry库,生成workspace文件。

  3. 在Xcode打开iOS端工程,双击打开当前目录下的AliInteractiveRoomDemo.xcodeproj文件。

  4. 修改配置文件。

    1. 打开AIRBDEnvironments.m文件。AIRBDEnvironments

    2. 修改如下参数,配置为自己应用的对应内容。

    @property (copy, nonatomic) NSString* interactiveLiveRoomAppID; // 在阿里云互动直播控制台上开通应用后获得
    @property (copy, nonatomic) NSString* interactiveLiveRoomAppKey; // 在阿里云互动直播控制台上开通应用后获得
    @property (copy, nonatomic) NSString* appServerHost; // 业务方自己的AppServer域名
    @property (copy, nonatomic) NSString* signSecret; // 业务方自定义的加签Secret
    AIRBDEnvironments
  5. 选择一台已连接的真机设备。

    说明

    暂不支持使用模拟器运行互动直播Demo。

    使用数据线连接一台iOS真机设备与电脑。iOS真机设备需在系统设置中开启开发者模式和USB调试功能。在移动端确认同意调试后,在Xcode中选择接入的真机设备。

  6. Sign & Capabilities选项卡,勾选Automatically manage signing,在下方选择自己的TeamSign & Capabilities选项卡

  7. 首次在手机上安装运行,需要在iOS设备的设置 > 通用 >设备管理中选择信任当前开发者账号。信任

Demo源码解析

直播开始前的全局初始化配置

  1. 首先,配置config后启动AIRBRoomEngine,代码如下:

    [[AIRBRoomEngine sharedInstance] setDelegate:self];
    [[AIRBRoomEngine sharedInstance] globalSetupOnceWithConfig:_config];
  2. AIRBRoomEngine启动成功后,会收到AIRBRoomEngineEventEngineStarted事件,然后进行登录,代码如下:

    [[AIRBRoomEngine sharedInstance] loginWithUserID:self.userID];
  3. 登录成功后,会收到AIRBRoomEngineEventEngineLogined事件,然后通过roomID就可以得到一个AIRBRoomChannel实例对象,代码如下:

    self.room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:self.roomID];

进入直播间(AIRBRoomChannel)

  1. 创建AIRBRoomChannel实例后,需要设置delegate,然后enterroom即可,代码如下:

    self.room.delegate = self;
    [self.room enterRoom];
  2. 进入直播间成功后,会收到AIRBRoomChannelRoomEventEntered事件,这个时候才能进行直播间内的活动,比如直播推流、直播观看、互动聊天等;

    也可以退出直播间,代码如下:

    [self.room leaveRoom];//退出直播间

创建直播推流

  1. 在进入直播间后,创建直播推流模块逻辑如下:

    AIRBLivePusherOptions* options = [AIRBLivePusherOptions defaultOptions];
    options.faceBeautyOptions.beautyMode = AIRBLivePushBeautyModeProfessional;
    [self.room createLivePusherWithOptions:options];
  2. 创建成功后,会收到AIRBRoomChannelLivePusherEventCreated,这个时候预览画面就会启动。可以通过pusherView接口获取这个预览的view并添加到父view上,代码如下:

    [self addSubview:[self.room pusherView]];
  3. 此时,仅完成了直播推流引擎的初始化,要真正开始直播推流,还需要调用以下接口:

    [self.room startLivePusher];
  4. 还可以暂停推流。

    [self.room pauseLivePusher];
  5. 暂停后也可以恢复推流。

    [self.room resumeLivePusher];
  6. 结束推流。

    [self.room stopLivePusher];

创建直播观看

  1. 对于观众来说,进入直播间成功后,可以选择创建直播播放器来看直播,代码如下,画面会自动打开:

    [self.room createAndStartLivePlayer];
  2. 启动成功后会收到AIRBRoomChannelLivePlayerEventStarted事件,这个时候可以通过playerView接口获取播放器view,并按需添加作为用户view的子view使用,代码如下:

    [self addSubview:[self.room playerView]];
  3. 停止观看直播时调用以下逻辑:

    [self.room stopLivePlayer];

直播间内发送消息

  • 对于直播间内的参与者,都可以通过以下接口发送消息:

    - (void) sendMessage:(NSString*)message onSuccess:(void (^)(void))onSuccess onFailure:(void (^)(NSString* errorMessage))onFailure;
  • 也可以通过以下接口发送点赞动作:

    - (void) sendLikeWithCount:(int32_t)count onSuccess:(void (^)(void))onSuccess onFailure:(void (^)(NSString*  errorMessage))onFailure;