2009-12-09 14 views
31

Nella documentazione vedo diversi framework per l'audio. Tutti sembrano essere mirati a riprodurre e registrare l'audio. Quindi mi chiedo quali sono le grandi differenze tra questi?Qual è la differenza tra tutti questi framework audio?

Cassetta degli attrezzi audio, unità audio, base AV e audio core. Oppure ho perso una guida che offre una buona panoramica di tutto questo?

risposta

38

Core Audio è il livello più basso di tutti i framework e anche il più vecchio.

Audio Toolbox è appena sopra Core Audio e offre molte API diverse che rendono più facile gestire il suono, ma ti dà ancora molto controllo. C'è ExtAudioFile, AudioConverter e molte altre API utili.

Audio Unit è un framework per lavorare con catene di elaborazione audio sia per dati audio campionati che MIDI. È dove vivono il mixer e i vari filtri ed effetti come il riverbero.

AV Foundation è una nuova API di livello abbastanza elevato per la registrazione e la riproduzione audio sul sistema operativo dell'iPhone. Tutti sono disponibili su OS X e iOS, sebbene AV Foundation richieda OS X 10.8+.

7

Core Audio non è in realtà un quadro, ma un'infrastruttura che contiene molti quadri diversi. Qualsiasi audio che esce dal tuo altoparlante iOS è, infatti, gestito da Core Audio.

Il livello più basso di Core Audio che è possibile ottenere è utilizzando le unità audio, che è possibile utilizzare utilizzando i framework AudioToolbox e AudioUnit.

Il framework AudioToolbox fornisce anche un'astrazione di livello più alto per gestire la riproduzione/registrazione dell'audio utilizzando AudioQueues o la gestione di vari formati audio utilizzando vari Servizi di conversione e file.

Infine, AV Foundation fornisce un accesso di alto livello alla riproduzione di un file specifico e MediaPlayer ti dà accesso (e riproduzione) alla tua libreria iPod.

24

Ho fatto una breve panoramica grafica di Core Audio e le sue (contenenti) quadri:

Audio APIs in iOS

Il framework più vicino all'hardware è Audio Unit. Sulla base di questo c'è OpenAL e AudioToolbox con AudioQueue. In cima puoi trovare i quadri Media Player e AVFoundation (Audio &).

Ora dipende da cosa si vuole fare: solo una piccola registrazione, utilizzare AVFoundation, che è la più semplice da usare. (Il lettore multimediale non ha opzioni per la registrazione, è - come dice il nome - solo un lettore multimediale.)

Vuoi eseguire seriamente l'elaborazione del segnale in tempo reale? Usa unità audio. Ma credimi, questo è il modo più difficile. :-)

Con iOS 8.0 Apple ha introdotto AVAudioEngine, un Objective-C/Swift sistema basato su grafico audio AV Foundation. Questo incapsulare qualche sporco C-roba da Audio Units. A causa della complessità di Audio Unit è forse vale la pena dare un'occhiata.

Ulteriori letture nella documentazione di Apple:

Problemi correlati