使用 IMKit 在前台弹出通知提示音后,音视频的声音异常

使用 IMKit 在前台弹出通知提示音后声音无法录入
发布时间: 2022-01-17 17:33

回答:

现象描述:

            A 用户正在前台通话或者直播, 这时收到一条消息并响起消息提示音,之后房间内其他人听不到 A 用户的声音。

原因:

            苹果的 AudioSession 不同 Category 允许的行为不同,通话过程中需要尽量避免其他操作影响 AudioSession 的值。

解决办法:

/*! 
*  \~chinese 
当App处于前台时,接收到消息并播放提示音的回调方法 
@param message 接收到的消息 
@return        当返回值为NO时,SDK会播放默认的提示音;当返回值为YES时,SDK针对此消息不再播放提示音 
@discussion 收到消息时播放提示音之前,会执行此方法。 如果App没有实现此方法,SDK会播放默认的提示音。 
流程: 
SDK接收到消息 -> App处于前台状态 -> 回调此方法准备播放提示音 -> App实现并返回YES        -> SDK针对此消息不再播放提示音                                 
                                                     -> App未实现此方法或者返回NO -> SDK会播放默认的提示音 
您可以通过 RCKitConfigCenter.message.disableMessageAlertSound 属性,关闭所有前台消息的提示音(此时不再回调此接口)。 
*/
- (BOOL)onRCIMCustomAlertSound:(RCMessage *)message;
//设置代理给Appdelegate或者其他单例对象:

    [RCIM sharedRCIM].receiveMessageDelegate = self;
 
//实现方法:   
- (BOOL)onRCIMCustomAlertSound:(RCMessage *)message{
    if ([RCKitUtility isAudioHolding]) {
       return YES;    
    }else{  
       return NO;    
    }
}