L'iPhone 5 ha tre microfoni: superiore anteriore, superiore posteriore e inferiore. Vorrei registrare su tutti contemporaneamente per eseguire l'elaborazione del segnale. Ho provato per diversi giorni senza successo.registrazione stereo su iPhone
Utilizzando AVAudioSession, posso vedere i microfoni:
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs);
"<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; UID = Built-In Microphone; selectedDataSource = Back>"
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].inputDataSources);
"<AVAudioSessionDataSourceDescription: 0x145afb00, ID = 1835216945; name = Bottom>",
"<AVAudioSessionDataSourceDescription: 0x145b1870, ID = 1835216946; name = Front>",
"<AVAudioSessionDataSourceDescription: 0x145b3650, ID = 1835216947; name = Back>"
posso usare AVAudioSessionPortDescription -setPreferredDataSource:error:
registrare da uno dei tre. Ma non posso registrare su più di uno contemporaneamente. Se imposto il numero di canali di input su 2, ottengo due tracce identiche dallo stesso microfono.
AVAudioRecorder ha una proprietà channelAssignments
che sembra che dovrebbe funzionare, ma AVAudioSession inputNumberOfChannels
e maximumInputNumberOfChannels
sono entrambi 1. La struttura è progettata per channelAssignments
microfoni ausiliari che hanno molteplici canali.
Ho provato a utilizzare AudioUnit di basso livello, ma ottengo lo stesso risultato. Non sono riuscito a trovare alcuna proprietà su AudioUnit per modificare la sorgente di input.
Qualsiasi aiuto sarebbe apprezzato.
Penso che sarà necessario ≥ iOS 7.0 (consultare https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html#//apple_ref/doc/uid/TP40008240 -CH1-SW112). –
Tutta la mia esperienza riguarda l'utilizzo dell'SDK di iOS 7, quindi da solo non è sufficiente per rispondere alla mia domanda, ma forse mi manca qualcosa di più specifico. –
Hai provato su iOS8 o anche su iOS9 beta? Mi interessa anche registrare due fonti contemporaneamente. – nacho4d