Вопрос

Я создаю приложение для записи 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?

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