Быстрый тур по Core Audio SDK
Можно создать аудиоустройство с нуля с помощью платформ Core Audio непосредственно. Однако, как описано всюду по этому документу, Apple строго призывает Вас начинать со свободно загружаемого комплекта разработчика программного обеспечения Core Audio или SDK. Apple создает все аудиоустройства, поставляющие в OS X с помощью SDK.
SDK предлагает много преимуществ разработчикам аудиоустройства. SDK:
Изолирует Вас от почти всей сложности имея дело с Менеджером компонентов OS X
Значительно упрощает усилие по разработке с богатой иерархией класса C++. Во многих случаях можно создать аудиоустройства с несколькими переопределениями метода. Это позволяет Вам создать полнофункциональные аудиоустройства товарного качества, непосредственно не вызывая ни одного APIs в платформах Core Audio.
Предоставляет прямой начальной точке шаблоны проекта аудиоустройства XCode.
Получение Core Audio SDK
Установите новый Core Audio SDK. Это - часть установки Инструментов XCode на OS X DVD. Можно также загрузить его с веб-сайта разработчика Apple в этом расположении:
http://developer .apple.com/sdk/
Команда Core Audio часто обновляет SDK так быть уверенной, что Вы используете самую актуальную версию.
Пакет установщика помещает SDK в названную папку CoreAudio
в пути:
/Developer/Examples/CoreAudio/
на Вашем объеме запуска.
Навигация в Core Audio SDK
Core Audio SDK содержит материалы для работы с аудиоустройствами, аудиофайлами, кодеками, MIDI и HAL. ReadMe.rtf
файл в CoreAudio
папка помогает Вам ориентироваться. Это включает прокомментированное перечисление папок в SDK, указателях на связанные ресурсы от команды Core Audio и информации о версии.
Для разработки аудиоустройства самые важные части SDK находятся в следующих папках:
AudioUnits
PublicUtility
Services
В этом разделе описываются каждую из этих папок поочередно.
Папка AudioUnits
AudioUnits
папка содержит иерархию класса C++, которую Вы используете для создания аудиоустройств. Это находится в AudioUnits/AUPublic
папка. Аудиоустройство шаблоны XCode зависит от этой иерархии классов.
AudioUnits/CarbonGenericView
папка содержит исходные файлы для Углерода универсальное представление.
Разработчики узла считают интерфейсы для Какао Apple универсальным представлением не в Core Audio SDK, а в OS X CoreAudioKit
платформа.
В дополнение к AUPublic
и CarbonGenericView
исходные папки, AudioUnits
папка содержит несколько полных примеров проекты XCode для аудиоустройств. Можно использовать эти проекты во множестве путей:
Непосредственно с помощью аудиоустройства создаются этими проектами
Изучение исходного кода, чтобы получить сведения, как к аудиоустройствам разработки и реализации
Используя проекты как начальные точки для Ваших собственных аудиоустройств
SDK включает следующие проекты аудиоустройства в качестве примера:
Проект DiagnosticAUs создает три аудиоустройства, которые можно счесть полезным для поиска и устранения неисправностей и анализа, поскольку Вы разрабатываете свои аудиоустройства:
AUValidSamples обнаруживает выборки, проходящие через него, которые являются вне диапазона или иначе недопустимы. Можно выбрать это аудиоустройство из группы Apple_DEBUG в узле аудиоустройства, таком как AU Lab.
AUDebugDispatcher упрощает отладку аудиоустройства. Можно выбрать это аудиоустройство из группы Acme Inc в узле аудиоустройства, таком как AU Lab.
AUPulseDetector измеряет задержку в хост-приложениях
Проект FilterDemo создает основной резонирующий фильтр низких частот с пользовательским представлением.
Проект MultitapDelayAU создает задержку мультикасания с пользовательским представлением.
Проект SampleAUs создает аудиоустройство передачи, включающее предварительные установки и множество типов параметра.
Проект SinSynth создает простой модуль инструментов, который можно использовать в хост-приложении как GarageBand.
Папка PublicUtility
Эта папка содержит разный набор C++ и исходных файлов Objective C, используемых Core Audio иерархия классов аудиоустройства SDK’s и демонстрационными проектами в SDK. Можно хотеть исследовать эти файлы, чтобы получить сведения, как работает иерархия классов.
Папка служб
Эта папка содержит несколько Core Audio проекты XCode, создающие инструменты, аудиоустройства и хост-приложения аудиоустройства. Как с проектами в AudioUnits
папка, можно использовать эти проекты во время разработки аудиоустройства во множестве путей:
Непосредственно с помощью инструменты, аудиоустройства и хост-приложения создаются этими проектами
Изучая исходный код, чтобы получить сведения, как Core Audio работает, а также понимание как к инструментам разработки и реализации, аудиоустройствам и хост-приложениям
Используя проекты как начальные точки для Ваших собственных инструментов, аудиоустройств и хост-приложений
Папка Services содержит следующие проекты XCode:
- AudioFileTools
Проект, создающий ряд восьми инструментов командной строки для игры, записи, исследования и управления аудиофайлами.
- AudioUnitHosting
Проект, создающий Основанное на углероде хост-приложение аудиоустройства. Полезный с точки зрения примера кода для разработчиков узла, но осуждаемый как узел к тестированию Ваших аудиоустройств. (Для тестирования аудиоустройства используйте AU Lab.)
- AUMixer3DTest
Проект, создающий приложение, использующее 3D аудиоустройство микшера.
- AUViewTest
Проект, создающий приложение без окон на основе графика обработки аудиоданных. График включает модуль инструментов, модуль эффекта и устройство вывода. Существует пункт меню для открытия представления для модуля эффекта. Приложение AUViewTest использует объект аудиоплеера играть повторяющуюся последовательность через модуль инструментов.
- CocoaAUHost
Проект, создающий Основанное на какао хост-приложение аудиоустройства. Этот проект полезен с точки зрения примера кода для разработчиков узла, но осуждаемый как узел к тестированию Ваших аудиоустройств. (Для тестирования аудиоустройства используйте AU Lab.)
- MatrixMixerTest
Проект, создающий модуль микшера в качестве примера с пользовательским представлением Cocoa.
- OpenALExample
Проект, создающий приложение на основе OpenAL API с расширениями Apple. Приложение демонстрирует управление позиции слушателя и ориентацию в двумерном расположении источников аудиосигналов.