发出或撤销邀请

本文介绍如何邀请他人连麦以及对应的消息通知。

说明

  • 邀请连麦的实现分为三个部分,第一,邀请方向被邀请方发出连麦邀请消息;第二,被邀请方收到邀请消息之后选择接受或拒绝,如果接受则直接加入连麦,如果拒绝则发出拒绝连麦邀请的消息;第三,邀请方收到被邀请方加入连麦成功的消息或者拒绝连麦邀请的消息。

  • 发出连麦邀请后,房间的成员会收到邀请连麦的消息,具体API请看邀请连麦消息通知示例

邀请他人连麦API使用示例

iOS端(Objective-C):

// 邀请他人连麦
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"]
[room.rtc addPeers:(NSArray<NSString*>*)userIDs];

// 邀请他人连麦失败,需要监听AIRBRTCDelegate中的如下错误事件
- (void) onAIRBRTCErrorWithCode:(AIRBErrorCode)code message:(NSString*)msg{
    switch (code) {
        case AIRBRTCFailedToAddPeers:
        break;
        .....
    }
}

Android端(Java):

// 邀请他人连麦, Callback中有邀请状态的标识
rtcService.inviteJoinRtc(List<ConfUserModel> userModels, Callback<Void> callback);

Windows端(c++):

// 邀请他人连麦
auto room_ptr = alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(room_id);
auto rtc_plugin = std::dynamic_pointer_cast<IRtc>(room_ptr->GetPlugin(PluginRtc));
// 被邀请人uid
std::string uid;
rtc_plugin->InviteJoinRtc(uid, [](){}, [](const ::alibaba::dps::DPSError & error_msg){});

撤销连麦邀请

撤销连麦邀请与踢出连麦相同。

连麦邀请被接受

被邀请方会加入连麦,会有被邀请方加入连麦成功的消息,具体请看加入连麦相关消息通知示例

连麦邀请被拒绝消息通知示例

iOS端(Objective-C):

// 连麦邀请被拒绝的消息,需要通过实现AIRBRoomChannelProtocol的AIRBRoomChannelDelegate中的如下方法和事件来通知,
- (void) onAIRBRoomChannelEvent:(AIRBRoomChannelEvent) event info:(NSDictionary*)info{
    switch (event) {
        case AIRBRoomChannelEventMessageReceived:{
            AIRBRoomChannelMessageType messageType = [[info valueForKey:@"type"] integerValue];
            switch (messageType) {
                case AIRBRoomChannelMessageTypePeerJoinRTCFailed:{
                    NSData *turnData = [[info valueForKey:@"data"] dataUsingEncoding:NSUTF8StringEncoding];
                    NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:turnData options:NSJSONReadingMutableLeaves error:nil];
                    // 自定义处理
                }
                break;
                .....
            }
        }
        break;
        .....
    }
}

Android端(Java):

// 通过调用RtcService.addEventHandler添加的事件监听器的回调触发来判断操作状态
rtc.addEventHandler(new SampleRtcEventHandler(){
    @Override
    public void onRtcHandleApplyChannel(ConfHandleApplyEvent event) {
        // 连麦邀请被拒绝的消息
    }
});

Windows端(c++):

// 连麦邀请被拒绝的消息
// 继承RtcEventListener,并重写OnRtcHandleApply方法
virtual void OnRtcHandleApply(const RtcHandleApplyEvent & event) {

};