Ho provato a prendere l'elenco dei dispositivi di input audio disponibili su un iPhone utilizzando questo codice:Che cosa sono kAudioSessionProperty_InputSources effettivamente utili?
CFArrayRef arrayRef;
UInt32 size = sizeof(arrayRef);
OSStatus status = AudioSessionGetProperty(kAudioSessionProperty_InputSources, &size, &arrayRef);
assert(status == noErr);
NSArray *array = (__bridge NSArray *)arrayRef;
Le opere di chiamata e restituisce senza errori, ma l'allineamento dei risultati è sempre vuoto, non importa quale hardware Mi sono collegato ad esso Ho provato due normali cuffie per cellulari, una originale di Apple e una di Samsung e due tipi di microfoni USB (uno iXY from Rode e uno iM2X from Tascam), ma l'array rimane sempre vuoto. Quindi mi chiedo quali tipi di fonti di input sarebbero effettivamente elencate da questa proprietà? È utilizzabile per niente?
Utilizzando un callback listener sui percorsi audio, sono stato in grado di verificare che tutti e 4 i dispositivi siano stati rilevati correttamente. Sono anche riuscito a registrare l'audio con ciascuno dei dispositivi, quindi funzionano tutti correttamente. Uso un iPhone 4S con iOS 6.1.3 (10B329).
Sembra che tu abbia ragione. "' kAudioSessionProperty_InputSources' "è solo per ingressi audio basati su USB. Questo è un peccato, in quanto non esiste un modo non deprecato per ottenere tutti gli input audio *** tramite le funzioni Core Foundation/C (che non sono specifici di Objective-C). –
@MichaelDautermann Grazie, sono d'accordo che è un peccato, dato che le alternative di livello più alto porteranno più spese generali. – Bamsworld
@MichaelDautermann e altri, puoi dirmi quali alternative di Objective-C esistono per ottenere i dispositivi di input del kit non-camera-connessione-kit? È quello menzionato da Shawn Hershey nella sua risposta a questa domanda? –