Можно ли на iOS получить аудиопоток пользователя в распакованном формате? Например, MP3 возвращается как WAV, который можно использовать для анализа звука? Я относительно новичок в платформе iOS и помню, что видел, что это было невозможно в более старых версиях iOS. Я читал, что в iOS 4 были добавлены некоторые расширенные API, но я не уверен, где я могу найти для них документацию / образцы.
3 ответа
Если вы не против использования API для iOS 4.1 и выше, вы можете попробовать использовать класс AVAssetReader
и друзей. В этом аналогичном вопросе у вас есть полный пример того, как извлекать видеокадры. Я ожидал, что то же самое будет работать и со звуком, и приятно то, что читатель имеет дело со всеми деталями декомпрессии. Вы даже можете выполнить композицию с AVComposition
, чтобы объединить несколько потоков.
Эти классы являются частью AVFramework a>, который позволяет не только читать, но и создавать свой собственный контент.
У Apple есть пример OpenAL по адресу http://developer.apple. .com / library / mac / # samplecode / OpenALExample / Introduction / Intro.html, где вас должен заинтересовать Scene.m.
В документации Apple есть это изображение. где фреймворк Core Audio ясно показывает, что он дает вам MP3. Он также заявляет, что при необходимости вы можете получить доступ к аудиоустройствам более радикальным способом.
Тот же документ Core Audio дает также некоторую информацию об использовании MIDI, если это может вам помочь.
Редактировать: Вам сегодня повезло.
В этом примере загружается и загружается аудиофайл. в граф AudioUnit. Вы можете довольно легко написать собственный AudioUnit, который будет помещен в этот график и будет анализировать поток PCM по вашему усмотрению. Вы даже можете сделать это в функции обратного вызова, хотя это, вероятно, не очень хорошая идея, потому что обратные вызовы должны быть как можно более простыми.
Похожие вопросы
Связанные вопросы
Новые вопросы
iphone
НЕ ИСПОЛЬЗУЙТЕ этот тег, если вы не обращаетесь конкретно к iPhone и / или iPod touch от Apple. Для вопросов, не зависящих от оборудования, используйте тег [ios]. Больше тегов, которые нужно рассмотреть, это [xcode] (но только если вопрос касается самой IDE), [swift], [target-c] или [cocoa-touch] (но не [cocoa]). Пожалуйста, воздержитесь от вопросов, касающихся iTunes App Store или iTunes Connect. Если вы используете C #, пометьте [mono].