Domanda

C'è un modo posso convertire un file mp3 in un WAV / AIFF nel mio iPhone app? Ho un mp3 ma voglio combinarlo con altri file e l'unico modo che conosco questo può essere fatto è quando si usano formati PCM.

Qualcuno mi può aiutare qui?

Grazie.

Alcune cose che ho provato

Ho provato ad utilizzare l'AudioConverterFillComplexBuffer () e la sua callback per convertire mp3 al caf, ma i byte per pacchetto e per fotogramma vengono letti come 0. Tutte le idee come posso o se posso usare questa funzione?

Grazie di nuovo.

È stato utile?

Soluzione

WAV e AIFF spesso (di solito?) Contengono PCM, quindi qual è l'obiezione lì? O stai dicendo che si deve ottenere i dati MP3 al PCM per mescolare (forse in un apparecchio audio mixer multicanale). Se si vuole seriamente per fare questo, guarda Core Audio, in particolare:

    Servizi
  • file audio (per leggere il formato MP3 e scrivere AIFF o WAV)
  • Audio Servizi di conversione di file (per convertire i dati MP3 al PCM, e / o per codificare da PCM a qualche altro codec se si dovesse scrivere un file). Si noti che un dato convertitore non è in grado di convertire tra i due formati codificati; si può fare MP3-to-PCM o PCM-to-AAC, ma per fare MP3-to-AAC, avreste bisogno di due convertitori.
  • estesi servizi di file audio, che combinano sia di quanto sopra.

Controlla la ConvertFile esempio nel Core Audio SDK . Questo apre un file di origine per la lettura, descrive il formato desiderato del file di destinazione, legge i buffer da uno e li scrive all'altro. Le mostre di codice sia l'uso separata dei servizi di file di servizi + conversione e il comodo utilizzo di ExtAudioFiles.

Inoltre, essere sicuri di capire la differenza tra i codec e formati di file, e ciò che il codec / combinazioni di formati sono legali. Mi ha sorpreso la prima volta ho scoperto che PCM deve essere little-endian in un WAV, big-endian in AIFF.

Altri suggerimenti

Probabilmente si può fare questo con il giusto insieme di unità Core Audio, ma probabilmente usare un sacco di CPU. Si dovrebbe convertire i dati prima del tempo (forse al momento della compilazione?), Se è possibile.

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