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