Запись звука в формате WAV на iphone
-
05-09-2019 - |
Вопрос
Я создаю приложение для записи iPhone, которому необходимо отправить звуковой файл в формате .wav на внешний сервер.
Начиная с примера SpeakHere, я могу записывать звук в виде файла, но только как .caf
Кто-нибудь знает, как вместо этого записать его в формате wav?Или как конвертировать из .caf в .wav на iphone?(Преобразование должно произойти по телефону)
Редактировать:
Мне интересно, можно ли что-нибудь сделать, используя kAudioFileWAVEType вместо kAudioFileCAFType в AudioFileCreateWithURL
Решение
Да, ключ - это kAudioFileWAVEType
AudioFileCreateWithURL (
audioFileURL,
kAudioFileWAVEType,
&audioFormat,
kAudioFileFlags_EraseFile,
&audioFileID
);
Переход на WAVE из CAF в примере SpeakHere приводит к тому, что запись становится wav.Я также отредактировал то же самое в классе воспроизведения и изменил имя файла на Recording.wav
Другие советы
Взгляните на файл libsndfile.Это хорошо используемая (в том числе Audacity) библиотека C для работы с большим количеством форматов файлов.Он поддерживает чтение и запись различных форматов CAF и WAV.
В Структура файла CAF и Формат WAV довольно похожи.В худшем случае преобразование не должно быть слишком сложным.
Для этого потребуется взять фрагмент аудиоданных и скопировать как есть в WAV-файл, а также использовать информацию из фрагмента описания аудио для добавления эквивалентного фмт вложенный фрагмент для WAV-файла.Это довольно простое копирование байтов.
Однако имейте в виду (как указал Эрик), что существуют проблемы с лицензированием, см.: Можно ли использовать библиотеку Libsndfile на iPhone iOS?