文档

静音某个成员

更新时间:

本文介绍如何实现静音某个成员,包括房主和被静音的成员的操作和处理。

说明

  • 静音某个成员的实现分为两个部分,第一,房主调用静音某个成员的接口,连麦中的成员会收到静音消息;第二,处理方收到静音消息,并且其中的被静音的用户ID与自己的相同,则主动调用关闭麦克风,并且禁止开关麦克风操作。

  • 只有房主可以静音他人,并且静音对房主不生效。

  • 通过传入不同参数进行静音或取消静音。

  • 静音消息与开关麦克风消息是同一个类型的,区别在于用户ID为自己时,表示被静音。

静音某个成员API使用示例

iOS端(Objective-C):

// 静音/取消静音某个成员
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"]
[room.rtc muteRemoteMicphone:(BOOL)mute remotePeer:(NSString*)userID
                      onSuccess:(void(^)(void))onSuccess
                      onFailure:(void(^)(NSString* errorMessage))onFailure];

Android端(Java):

// 静音/取消静音某个成员
rtcService.muteRemoteAudioPlaying(String uid, boolean mute);

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));
//静音或者非静音
std::string uid;
bool mute = true;
rtc_plugin->MuteUser(uid, mute, [](){}, [](const ::alibaba::dps::DPSError & error_msg){});

静音消息通知示例

收到此消息,如果被静音操作的用户ID与自己的相同,并且状态为被静音,则主动调用关闭麦克风,并且禁止开关麦克风操作。

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 AIRBRoomChannelMessageTypeOnMicphoneMuted:{
                    NSData *turnData = [[info valueForKey:@"data"] dataUsingEncoding:NSUTF8StringEncoding];
                    NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:turnData options:NSJSONReadingMutableLeaves error:nil];
                    // 自定义处理,如果被静音的用户ID与自己的相同,并且状态为被静音,则主动调用关闭麦克风
                }
                break;
                .....
            }
        }
        break;
        .....
    }
}

Android端(Java):

// 通过调用RtcService.addEventHandler添加的事件监听器的回调触发来判断操作状态
rtc.addEventHandler(new SampleRtcEventHandler(){
    @Override
    public void onRtcUserAudioMuted(String uid) {
        // 静音消息
    }
});

Windows端(c++):

// 静音消息
// 继承RtcEventListener,并重写OnRtcMuteMessage方法
virtual void OnRtcMuteMessage(const MuteMessageEvent & event) {

};
  • 本页导读 (1)
文档反馈