вырезать аудиофайл с помощью iPhone SDK

Можно ли вырезать аудиофайл с помощью iPhone SDK? (файл имеет расширение .caf) Мне просто нужно обрезать тишину в начале.

(Кроме того, возможно, можно записать новый файл из существующего с указанным временем начала и окончания.)

Заранее спасибо!


person Dmitry    schedule 29.05.2010    source источник
comment
Неужели это настолько сложно, что никто не знает, как это сделать?   -  person Dmitry    schedule 30.05.2010


Ответы (2)


Это не сложно, это просто неудобно, вы можете использовать Расширенные службы аудиофайлов. взгляните на ссылку для ExtAudioFileRead и ExtAudioFileWrite (у них есть пример кода), затем вы можете открыть один аудиофайл, прочитать его, обрезать его, а затем написать новый.

person Aran Mulholland    schedule 04.06.2010
comment
Привет Аран. Спасибо за ответ! Я вижу ExtAudioFileRead и ExtAudioFileWrite, но не вижу ExtAudioFileTrim или что-то в этом роде.. :( - person Dmitry; 04.06.2010
comment
в порядке. Я понимаю. а вот вопрос - как обрезать аудиофайл? Я не могу просто отрезать кучу байтов, это испортит файл. - person Dmitry; 05.06.2010
comment
если это прямые данные PCM (не сжатые), то вы можете решить, что вырезать. в моем профиле есть несколько примеров проектов iphone core audio. один из них (микшер) имеет класс InMemoryAudioFile. он открывает аудиофайл и помещает его данные в массив. Данные PCM просто выложены. если это стереофайл с 16-битными данными, у вас будут 32-битные пакеты, каждый из которых представляет один стереосэмпл. как только вы сможете получить эти данные, их не так уж сложно обрезать. - person Aran Mulholland; 06.06.2010
comment
@AranMulholland Я не вижу InMemoryAudioFile. Не могли бы вы указать точный URL, пожалуйста. - person AlienMonkeyCoder; 22.02.2012
comment
я думаю, что это sites.google.com/site/iphonecoreaudiodevelopment/ - person Aran Mulholland; 23.02.2012

Функция обрезки отсутствует. Вы должны написать некоторый код, который открывает файл для чтения и создает и открывает другой файл для записи. Затем напишите цикл, который считывает аудиовыборку или пакетные данные, отбрасывает тишину в начале и записывает аудиоданные в выходной файл.

person lucius    schedule 05.06.2010