Согласно документации AVAudioSessionModeVideoChat
-
При использовании этого режима тональная коррекция устройства оптимизируется для голоса, а набор допустимых аудиомаршрутов сводится только к тем, которые подходят для видеочата.
Таким образом, система снижает стандартную чувствительность аудиовыхода и входных маршрутов, подходящих для этого режима.
Я использую setMode для AVAudioSessionModeVideoChat
, чтобы приложение/система автоматически распознавало и адаптировалось к аппаратной интеграции (проводная и bluetooth-гарнитура) на лету. Но похоже, что установка этого режима для видеочата значительно снижает чувствительность встроенного микрофона, и, следовательно, звук записывается с низким тоном. Мои целевые пользователи приложения будут в основном в шумной атмосфере.
Есть ли способ увеличить чувствительность ввода и вывода до максимума и в то же время использовать режим AVAudioSessionModeVideoChat
?
Ниже приведен код, используемый для настройки AudioSession в моем приложении...
if (![[[AVAudioSession sharedInstance] category] isEqualToString:AVAudioSessionCategoryPlayAndRecord]) {
[[AVAudioSession sharedInstance] setActive:NO error:&error];
[[AVAudioSession sharedInstance] setActive:YES error:&error];
NSLog(@"setActive error = %@", error);
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
NSLog(@"setCategory error = %@", error);
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVideoChat error:&error];
NSLog(@"setMode error = %@", error);
}
Детали среды тестирования: -
Протестированные устройства: iPad mini retina 4G и iPad 2.
iOS: 7.0.3
Тестирование со встроенными в устройство динамиками и микрофонами.