2012-02-29 27 views
8

Come si registra audio utilizzando iOS? Non è la registrazione in ingresso dal microfono, ma voglio essere in grado di catturare/registrare l'audio in riproduzione corrente all'interno della mia app?Registrazione audio iOS

Così, ad es. Inizio una sessione di registrazione e qualsiasi suono riprodotto solo nella mia app, voglio registrarlo su un file?

Ho fatto ricerche su questo, ma sono confuso con cosa usare in quanto sembra che la miscelazione di framework audio possa causare problemi?

Voglio solo essere in grado di catturare e salvare l'audio riprodotto all'interno della mia applicazione.

+0

Come suoni l'audio all'interno della tua app? – sbooth

+0

Utilizzerò le unità audio. Il registratore stesso sarà un'unità? – jarryd

+0

solo per chiarire, quando dici di voler registrare il suono riprodotto all'interno della tua app (non il microfono), vuoi solo dire che vuoi registrare direttamente dalla scheda audio, giusto? Quindi, diciamo che se qualcuno è a capo delle cuffie, potrebbe comunque registrare qualunque cosa sentano. – luca590

risposta

4

Beh, se stai cercando di registrare solo l'audio prodotto dalla TUA, allora sì questo è molto possibile.

Ciò che non è possibile, è la registrazione di tutto l'audio che viene emesso attraverso l'altoparlante. (MODIFICA: Voglio solo chiarire che non c'è modo di registrare l'uscita audio prodotta da altre applicazioni.È possibile solo registrare i campioni audio che si producono).

Se si desidera registrare l'uscita audio della propria app, è necessario utilizzare l'unità audio io remota (http://atastypixel.com/blog/using-remoteio-audio-unit/).

Tutto ciò che avresti davvero bisogno di fare è copiare il buffer di riproduzione dopo averlo riempito.

ex)

memcpy(void *dest, ioData->mBuffers[0].mData, int amount_of_bytes); 
1

Non esiste alcuna API pubblica per acquisire o registrare tutto l'output audio generico da un'app iOS.

1

Partenza l'applicazione di esempio MixerHostAudio da Apple. È un ottimo modo per iniziare a conoscere Audio Units. Una volta capito, ci sono molti tutorial online che parlano dell'aggiunta della registrazione.

2

Questo è possibile avvolgendo un Core Audio di pubblica utilità di file CAAudioUnitOutputCapturer http://developer.apple.com/library/mac/#samplecode/CoreAudioUtilityClasses/Introduction/Intro.html

Vedi la mia risposta a questa domanda per le classi wrapper. Properly use Objective C++

+0

Pensi che sia possibile anche registrare l'audio da altre app? Riesci a registrare audio puro che, ad esempio, sta producendo Spotify? –

+0

@PiotrDabkowski iOS esegue il sandboxing, quindi l'audio è probabilmente nativo dell'app stessa. Ci sono cose come l'audio inter-app, per cui Spotify nel tuo caso deve supportare affinché tu possa ricevere l'audio da esso. – lppier

Problemi correlati