AVAudioSession を使用して、利用可能な入力を取得します。
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs);
"<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; UID = Built-In Microphone; selectedDataSource = Back>"
次に、これらの入力の 1 つを使用して、次のように availableDataSources を取得します。
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].dataSources);
"<AVAudioSessionDataSourceDescription: 0x145afb00, ID = 1835216945; name = Bottom>",
"<AVAudioSessionDataSourceDescription: 0x145b1870, ID = 1835216946; name = Front>",
"<AVAudioSessionDataSourceDescription: 0x145b3650, ID = 1835216947; name = Back>"
この iPhone には実際に 3 つのマイクがあることがわかります: 上部前面、上部背面、下部です。これで、好みのデータ ソースを設定できます。
AVAudioSessionPortDescription *port = [AVAudioSession sharedInstance].availableInputs[0];
for (AVAudioSessionDataSourceDescription *source in port.dataSources) {
if ([source.dataSourceName isEqualToString:@"Back"]) {
[port setPreferredDataSource:source error:nil];
}
}
これが幸せなコーディングに役立つことを願っています!!!