Pergunta

Existe uma maneira que eu posso converter um arquivo mp3 em um wav / aiff em meu iPhone app? Eu tenho um mp3, mas quero combiná-lo com outros arquivos e a única maneira que eu sei que isto pode ser feito é quando se utiliza formatos PCM.

Alguém pode me ajudar aqui?

Graças.

Algumas coisas eu tentei

Eu tentei usar o AudioConverterFillComplexBuffer () método e seu retorno para converter o mp3 para caf mas os bytes por pacote e por quadro são lidos como 0. Alguma idéia de como eu posso ou se eu posso usar essa função?

Obrigado novamente.

Foi útil?

Solução

WAV e AIFF muitas vezes (normalmente?) Contêm PCM, então qual é a objeção lá? Ou você está dizendo que você tem que obter os seus dados MP3 para PCM, a fim de misturá-lo (talvez em um misturador multicanal unidade de áudio). Se você quiser seriamente para fazer isso, olhar para Core Audio, especificamente:

  • Serviços de arquivo de áudio (para ler o formato MP3 e gravação AIFF ou WAV)
  • Audio arquivo de serviços de conversão (para converter os dados MP3 para PCM, e / ou a codificação de PCM para algum outro codec se você fosse escrever um arquivo). Note-se que um determinado conversor não pode converter entre dois formatos codificados; você pode fazer MP3-to-PCM ou PCM-to-AAC, mas para fazer MP3-to-AAC, você precisa de dois conversores.
  • estendidas Serviços de arquivo de áudio, que combinam ambos acima.

Confira o ConvertFile exemplo no Core Audio SDK . Isso abre um arquivo de origem para a leitura, descreve o formato desejado do arquivo de destino, lê buffers de um e escreve-los para o outro. As exposições de código ambas o uso isolado de Serviços de arquivo + de conversão e o uso conveniente de ExtAudioFiles.

Além disso, certifique-se de compreender a diferença entre codecs e formatos de arquivo, e quais combinações de codec / formato são legais. Fiquei surpreso na primeira vez eu descobri que PCM deve ser little-endian em um WAV, big-endian em uma AIFF.

Outras dicas

Você provavelmente pode fazer isso com o direito conjunto de unidades Core Audio, mas provavelmente vai usar um monte de CPU. Você deve converter os dados antes do tempo (talvez em tempo de compilação?), Se você puder.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top