会中的时候,一些特殊的音频设备的回声、时延等无法自动消除,这个时候可以通过音频诊断功能主动让 SDK 分析和处理这些问题。调用诊断功能,会自动播放一段音频,这个时候需要使麦克风采集到扬声器播放的声音,当播放结束的时候,SDK 会通过比对播放与采集到的音频,得出结果并自动矫正,从而修复问题。 因为流程的复杂和对环境的要求,以及会修改 SDK 的音频单元参数,所以请慎用此功能。
- (IBAction)audioDiagnose:(NSButton *)sender {
[[XYLinkSDK sharedXYLinkSDK] diagnoseAudio];
}
- (void)xyLinkSDKDidDiagnoseAudio:(NSString *)result {
// 可以把诊断结果保存下来,下次在登录成功后,直接调用setDiagnoseAudioConfig配置设备
// if (result) {
// [[NSUserDefaults standardUserDefaults] setValue:result forKey:[self.linkSDK getCurrentUsedDevice:AudioMediaType bInput:NO].deviceUID];
// }
// 这里模拟读取本地配置文件,也可以是请求接口
NSData *jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"audio_config" ofType:@"json"]];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
// 如果配合音频诊断使用,需要在诊断完成后(或者 setDiagnoseAudioConfig: 方法后)再调用
[[XYLinkSDK sharedXYLinkSDK] setNConsoleAudioConfig:jsonString];
}
音频诊断