После долгих поисков ответ кажется нет, но я думал, что попрошу здесь, прежде чем сдаться. Для проекта, над которым я работаю, включая звуковую запись, уровни ввода звучат немного тихо, когда маршрут - это внешний микрофон + динамик, а также наушники для наушников + наушники. Кто-нибудь знает окончательно, можно ли программно изменить уровни усиления микрофона на iPhone в любой части Core Audio?Core Audio на iPhone - любой способ изменить коэффициент усиления микрофона (для микрофона микрофона или микрофона для наушников)?
Если нет, возможно ли, что я действительно не в режиме «громкой связи» (хотя бы с внешним микрофоном), но думаю только, что я? Вот мой код инициализации аудиозаписей:
OSStatus error = AudioSessionInitialize(NULL, NULL, audioQueueHelperInterruptionListener, r);
[...some error checking of the OSStatus...]
UInt32 category = kAudioSessionCategory_PlayAndRecord; // need to play out the speaker at full volume too so it is necessary to change default route below
error = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
if (error) printf("couldn't set audio category!");
UInt32 doChangeDefaultRoute = 1;
error = AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);
if (error) printf("couldn't change default route!");
error = AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, audioQueueHelperPropListener, r);
if (error) printf("ERROR ADDING AUDIO SESSION PROP LISTENER! %d\n", (int)error);
UInt32 inputAvailable = 0;
UInt32 size = sizeof(inputAvailable);
error = AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable, &size, &inputAvailable);
if (error) printf("ERROR GETTING INPUT AVAILABILITY! %d\n", (int)error);
error = AudioSessionAddPropertyListener(kAudioSessionProperty_AudioInputAvailable, audioQueueHelperPropListener, r);
if (error) printf("ERROR ADDING AUDIO SESSION PROP LISTENER! %d\n", (int)error);
error = AudioSessionSetActive(true);
if (error) printf("AudioSessionSetActive (true) failed");
Большое спасибо за любые указатели.
Возможный дубликат [Как для контроля усиления/усиления аппаратного микрофонного входа на iPhone?] (http://stackoverflow.com/questions/10871231/how-to-control-hardware-mic-input-gain-level-on-iphone) – buildsucceeded