IPhone 5 имеет 3 микрофона. Могу ли я изменить, с какого я записываю?

IPhone 5 имеет 3 микрофона, согласно презентации продукта:

презентация iPhone 5

Просматривая веб-сайт iFixit и других, я теперь знаю, где находится нижний микрофон, и я определил тот, что сзади, прямо рядом с камерой.

Наверху должен быть еще один, но я не вижу его, поэтому я предполагаю, что он находится за отверстием наушника / ресивера. (Это правильно?)

Я хотел бы записывать с двух разных микрофонов, пока iPhone 5 лежит на спине. (Таким образом, задний микрофон не может быть и речи).

Мой вопрос:

Есть ли какой-нибудь способ, которым я могу записывать с обоих микрофонов одновременно и по отдельности (то есть в стерео, как это делают некоторые телефоны с Windows Phone 8 Lumia)? Если нет, есть ли способ, который я могу использовать для переключения между микрофонами, например, сначала записать запись с нижней части iPhone, а затем выполнить какой-нибудь код для переключения на верхнюю?

Ваши советы будут высоко оценены.

2 ответа

Решение
// set up the audio session
NSError *error = nil;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
[audioSession setActive:YES error:&error];

if (error != nil) { NSLog(error); }


// all available inputs
NSArray* inputs = [audioSession availableInputs];

// Locate the port corresponding to the built-in microphone
for (AVAudioSessionPortDescription* port in inputs)
{
    if ([port.portType isEqualToString:AVAudioSessionPortBuiltInMic])
    {
        [self setBuiltInMicPort:port];
        break;
    }
}

// list all microphones
for (AVAudioSessionDataSourceDescription *micType in [audioSession inputDataSources]) {
    NSLog(@"%@ -- %@ -- %@ -- %@", micType.dataSourceID, micType.dataSourceName, micType.location, micType.orientation );

    if ([micType.orientation isEqualToString:@"Front"]) // or @"Back" or @"Bottom"
    {
        [micType setPreferredPolarPattern:AVAudioSessionPolarPatternOmnidirectional error:&error]; // optional
        [self.builtInMicPort setPreferredDataSource:micType error:&error];   
    }
}

Это базовый пример того, как выбрать разные встроенные микрофоны в iPhone. Пожалуйста, имейте в виду, что количество микрофонов отличается: iPhone 5 и более поздние имеют три микрофона, в то время как в предыдущих поколениях было только два микрофона (без заднего микрофона).

Для получения дополнительной информации прочитайте Технический вопрос и ответ Apple.

Я только что проверил, что Skype использует верхний микрофон при использовании фронтальной камеры. Теперь мне нужно только убедиться, что я могу быстро переключаться между верхним и нижним микрофоном, начав захват видео с передней камеры, а затем остановив его снова.

Другие вопросы по тегам