Domanda

Sto avendo un momento difficile cercando di registrare qualcosa di diverso da PCM lineare su iPhone :-( I campioni che ho trovato (SDK SpeakHere, Zdziarski e libri di Sadun e quella di trailsinthesand.com) tutti usano PCM lineare, ma mi piacerebbe un formato compresso comunemente usato al posto (senza ima4 o qualunque sia il nome è ...).

Non riesco proprio a capire come modificare il codice di esempio da utilizzare con, ad esempio AAC, MP3 o AMR, invece. Eventuali suggerimenti e consigli su come farlo sono molto apprezzati!

(Btw, non credo che un MP3-encoder né AMR-encoder sono disponibili a causa di problemi di licenza, ma AAC esiste, o ???)

Modifica / Aggiornamento: sono incappato il seguente testo in "Applicazione iPhone Programming Guide" di Apple, 2009-01-06, pagina 137, sezione: registrazione audio:
"Si può registrare l'audio in uno qualsiasi dei formati elencati nella sezione‘preferiti Formati audio in iPhone OS’(pagina 140)", e formati audio come preferito a pagina 140 sono: "Per l'audio compresso quando si gioca un suono alla volta, e quando non è necessario per riprodurre l'audio in contemporanea con l'applicazione iPod, utilizzare il formato AAC confezionato in un file CAF o m4a. "
Così, interpreto che come una chiara indicazione che è davvero, non solo possibile, ma anche preferibile, per registrare l'audio in formato AAC avvolto in un file m4a, che è proprio quello che voglio. Ma ancora, io non sono in grado di raggiungere questo?!

Grazie, / John

È stato utile?

Soluzione

Continua a guardare quei documenti. In "Essentials Audio Core", la sezione "Core Audio Plug-in: Unità audio e codec", osserva che:

  

iPhone OS contiene la registrazione   codec elencati nella Tabella 2-5. Come puoi   vedere, né registrazione MP3 né AAC è   a disposizione. Ciò è dovuto alla elevata CPU   sovraccarico, e conseguente batteria   di scarico, di questi formati.

Tabella 2-5 elenca diversi formati, ma, come nota il testo non include quelli che stai cercando. Se si desidera che tali formati dovrete portare il proprio codificatore.

Altri suggerimenti

E 'possibile in iPhone 3GS e iPod 2 ° generazione e superiori. Hanno un enconder hardware per AAC. C'è un progetto di esempio di Apple per questo che fa esattamente ciò che si vuole fare:

iPhoneExtAudioFileConvertTest

Un consiglio per l'utilizzo di FAAC convertire da file PCM lineare iPhone-output in formato AAC:

ho scoperto attraverso la sperimentazione che si deve utilizzare il -X bandierina sulla versione da riga di comando di FAAC (in esecuzione su Mac OS X), che "scambia i byte di ingresso." (Credo che cambia l'endian-ness.)

Quindi, per esempio, se si audio registrato il file linear.pcm sul vostro iPhone, si potrebbe quindi eseguire:

faac -XP linear.pcm

sul vostro Mac per convertire in file AAC linear.aac.

Sto indovinando questo significa che potrebbe essere in grado di utilizzare FAAC entro la vostra applicazione per eseguire la conversione, se si voleva, visto che è una libreria C.

Si noti inoltre che, tecnicamente, l'output dei file da parte dei servizi audio di iPhone sono di solito i file CAF, Nucleo Formato Audio, che è una sorta di formato wrapper per un gruppo di possibili codifiche: noreferrer docs di Apple sul CAF . La riga di comando di cui sopra funziona bene per me, anche se caff inizia con la <=> intestazione.

Hai provato Lame encoder mp3? O codec FAAC / faad AAC? Si possono incorporare nel ffmpeg per codec audio ancora più.

Perché non provare TPAACAudioConverter scritta dal leggendario Michael Tyson?

  

TPAACAudioConverter è una semplice classe Objective-C che esegue la   la conversione di qualsiasi file audio a un m4a AAC codificato, in modo asincrono   con un delegato, o converte qualsiasi audio fornita da una classe di origine di dati   (Che prevede la registrazione direttamente in AAC).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top