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

3
Skoder 27 Авг 2011 в 17:28

3 ответа

Лучший ответ

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

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

3
Community 23 Май 2017 в 12:02

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

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

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

Редактировать: Вам сегодня повезло.

2
Community 23 Май 2017 в 09:59

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

1
richardolsson 29 Авг 2011 в 16:32