iOS Advanced Audio API для распаковки формата

На iOS возможно ли получить аудиопоток пользователя в распакованном формате? Например, MP3 возвращается как WAV, который можно использовать для анализа звука? Я относительно новичок в платформе iOS и помню, что это было невозможно в старых версиях iOS. Я читал, что в iOS 4 добавлены некоторые передовые API, но я не уверен, где можно найти документацию / примеры для них.

3 ответа

Решение

Если вы не возражаете против использования API для iOS 4.1 и выше, вы можете попробовать использовать AVAssetReader класс и друзья. В этом похожем вопросе у вас есть полный пример того, как извлечь видеокадры. Я ожидаю, что то же самое будет работать для аудио, и приятно то, что читатель имеет дело со всеми деталями декомпрессии. Вы даже можете сделать композицию с AVComposition объединить несколько потоков.

Эти классы являются частью AVFramework, которая позволяет не только читать, но и создавать собственный контент.

У Apple есть пример OpenAL по адресу http://developer.apple.com/library/mac/, где Scene.m должен вас заинтересовать.

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

В этом же документе Core Audio содержится также некоторая информация об использовании MIDI, если она может вам помочь.

Изменить: сегодня вам повезло.

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

Другие вопросы по тегам