Вопрос

Есть ли способ конвертировать mp3-файл в wav/aiff в приложении для iPhone?У меня есть mp3, но я хочу объединить его с другими файлами, и я знаю, что это можно сделать только при использовании форматов PCM.

Может кто-нибудь помочь мне здесь?

Спасибо.

Некоторые вещи, которые я пробовал

Я попытался использовать метод AudioConverterFillComplexBuffer() и его обратный вызов для преобразования mp3 в caf, но байты на пакет и на кадр считываются как 0.Есть идеи, как я могу или могу ли я использовать эту функцию?

Еще раз спасибо.

Это было полезно?

Решение

WAV и AIFF часто (обычно?) содержат PCM, так в чем же тут возражение?Или вы говорите, что вам нужно передать данные MP3 в PCM, чтобы микшировать их (возможно, в многоканальном микшерном аудиоустройстве).Если вы серьезно хотите это сделать, обратите внимание на Core Audio, а именно:

  • Службы аудиофайлов (для чтения формата MP3 и записи AIFF или WAV)
  • Службы преобразования аудиофайлов (для преобразования данных MP3 в PCM и/или для кодирования из PCM в какой-либо другой кодек, если вы собираетесь записать файл).Обратите внимание, что данный конвертер не может конвертировать два закодированных формата;вы можете конвертировать MP3 в PCM или PCM в AAC, но для преобразования MP3 в AAC вам понадобятся два конвертера.
  • Расширенные аудиофайловые службы, сочетающие в себе оба вышеперечисленных.

Проверьте Пример конвертации файла в Core Audio SDK.При этом открывается исходный файл для чтения, описывается желаемый формат целевого файла, считывается буферы из одного и записывает их в другой.В коде показано как раздельное использование файловых сервисов + сервисов конвертации, так и удобное использование ExtAudioFiles.

Кроме того, обязательно поймите разницу между кодеками и форматами файлов, а также какие комбинации кодеков и форматов являются допустимыми.Я был удивлен, когда впервые узнал, что PCM должен быть с прямым порядком байтов в WAV и с прямым порядком байтов в AIFF.

Другие советы

Вероятно, вы сможете сделать это с помощью подходящего набора модулей Core Audio, но это, вероятно, потребует много ресурсов процессора.Вам следует преобразовать данные заранее (возможно, во время сборки?), если можете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top