Core Audio Services

Эта глава перечисляет службы, доступные в Core Audio. В iOS Вы считаете эти службы расположенными в следующие платформы:

Core Audio в OS X включает те четыре платформы и добавляет еще три:

Для фокусируемого на платформе представления заголовочных файлов в Core Audio посмотрите Платформы Core Audio Приложения.

Остальная часть этой главы представляет фокусируемое на службах представление Core Audio — начиная со служб, доступных и в iOS и в OS X.

Службы, Доступные в iOS и OS X

Службы, перечисленные в этом разделе, доступны в iOS 2.0 и OS X v10.5.

Audio Converter Services

Audio Converter Services позволяет Вам преобразовывать данные между форматами. Этот интерфейс состоит из функций, типов данных и констант, объявленных в AudioConverter.h заголовочный файл в AudioToolbox.framework.

Audio File Services

Службы Аудиофайла позволяют Вам считать или записать аудиоданные в и от файла или буфера. Вы используете его в сочетании с Audio Queue Services, чтобы записать или играть аудио. В iOS и OS X, Audio File Services состоит из функций, типов данных и констант, объявленных в AudioFile.h заголовочный файл в AudioToolbox.framework.

Audio File Stream Services

Службы Audio File Stream позволяют Вам проанализировать потоки аудиофайла — т.е. аудиоданные, для которых у Вас не обязательно есть доступ ко всему файлу. Можно также использовать его для парсинга данных файла от диска, несмотря на то, что Audio File Services разработана с этой целью.

Службы Audio File Stream возвращают аудиоданные и метаданные к Вашему приложению через обратные вызовы. который Вы обычно тогда воспроизводите использование Audio Queue Services. В iOS и OS X, Audio File Stream Services состоит из функций, типов данных и констант, объявленных в AudioFileStream.h заголовочный файл в AudioToolbox.framework.

Audio Format Services

Audio Format Services позволяет Вам работать с данными о формате аудиоданных. Другие службы, такие как Audio File Services, имеют функции для этого использования также. Вы используете Audio Format Services, когда все, что Вы хотите сделать, получают данные о формате аудиоданных. В OS X можно также использовать эту службу для получения системных характеристик, таких как доступные частоты дискретизации для кодирования. Audio Format Services состоит из функций, типов данных и констант, объявленных в AudioFormat.h заголовочный файл в AudioToolbox.framework.

Audio Processing Graph Services

Audio Processing Graph Services позволяет Вам создать и управлять графиками обработки аудиоданных в своем приложении. В iOS и в OS X, это состоит из функций, типов данных и констант, объявленных в AUGraph.h заголовочный файл в AudioToolbox.framework.

Audio Queue Services

Audio Queue Services позволяет Вам играть или записать аудио. Это также позволяет Вам пауза и воспроизведение резюме, выполните цикличное выполнение и синхронизируйте многократные каналы аудио. В iOS и OS X, Audio Queue Services состоит из функций, типов данных и констант, объявленных в AudioQueue.h заголовочный файл в AudioToolbox.framework.

Audio Unit Services

Audio Unit Services позволяет Вам загрузить и использовать аудиоустройства в своем приложении.

В iOS Audio Unit Services включает функции, типы данных и константы, объявленные в следующих заголовочных файлах в AudioUnit.framework:

  • AUComponent.h

  • AudioComponent.h (только iOS)

  • AudioOutputUnit.h

  • AudioUnitParameters.h

  • AudioUnitProperties.h

OS X добавляет к ним следующие заголовочные файлы от AudioUnit.framework и AudioToolbox.framework:

  • AUCocoaUIView.h

  • AudioUnitCarbonView.h

  • AudioUnitUtilities.hAudioToolbox.framework)

  • LogicAUProperties.h

  • MusicDevice.h

OpenAL

OpenAL является позиционной аудио технологией с открытым исходным кодом, разработанной для использования в игровых приложениях. iOS и OS X имеют реализации спецификации OpenAL 1.1. Вы находите его заголовки в следующих заголовочных файлах в платформе OpenAL:

  • al.h

  • alc.h

В iOS у Вас есть эти дополнительные заголовочные файлы:

  • oalMacOSX_OALExtensions.h

  • oalStaticBufferExtension.h

В OS X у Вас есть этот дополнительный заголовочный файл:

  • MacOSX_OALExtensions.h

System Sound Services

System Sound Services позволяет Вам играть короткие звуки и предупреждения. На iPhone это позволяет Вам вызвать вибрацию. System Sound Services состоит из подмножества функций, типов данных и констант, объявленных в AudioServices.h заголовочный файл в AudioToolbox.framework.

Службы, Доступные в iOS Только

Службы, перечисленные в этом разделе, доступны в iOS только.

Аудио сеансовые службы

Аудио Сеансовые службы позволяют Вам управлять аудио сеансами в своем приложении — координирование аудио поведения в Вашем приложении с фоновыми приложениями на iPhone или iPod touch. Аудио Сеансовые службы состоят из подмножества функций, типов данных и констант, объявленных в AudioServices.h заголовочный файл в AudioToolbox.framework.

Класс AVAudioPlayer

AVAudioPlayer класс обеспечивает простой интерфейс Objective-C для игры звуков. Если Ваше приложение не требует расположения стерео или точной синхронизации, и если Вы не играете аудио, полученное от сетевого потока, Apple рекомендует использовать этот класс для воспроизведения. Этот класс объявляется в AVAudioPlayer.h заголовочный файл в AVFoundation.framework.

Службы, доступные в OS X только

Службы, перечисленные в этом разделе, доступны в OS X только.

Audio Codec Services

Audio Codec Services позволяет Вам преобразовывать данные между форматами. Этот интерфейс состоит из функций, типов данных и констант, объявленных в AudioCodec.h заголовочный файл в AudioUnit.framework.

  • AudioCodec.h (расположенный в AudioUnit.framework).

Audio Hardware Services

Audio Hardware Services обеспечивает маленький, легкий интерфейс для некоторых важных функций Аудио HAL (уровень аппаратной абстракции). Audio Hardware Services состоит из подмножества функций, типов данных и констант, объявленных в AudioServices.h заголовочный файл в AudioToolbox.framework.

Core Audio Clock Services

Core Audio Clock Services обеспечивает опорный синхрогенератор, который можно использовать для синхронизации приложений и устройств. Эта служба состоит из функций, типов данных и констант, объявленных в CoreAudioClock.h заголовочный файл в AudioToolbox.framework.

Core MIDI Services

Core Audio в OS X поддерживает MIDI через Core MIDI Services, состоящую из функций, типов данных и констант, объявленных в следующих заголовочных файлах в CoreMIDI.framework:

  • MIDIServices.h

  • MIDISetup.h

  • MIDIThruConnection.h

  • MIDIDriver.h

Серверные службы Core MIDI

Серверные службы Core MIDI позволяют драйверам MIDI передать с OS X сервер MIDI. Этот интерфейс состоит из функций, типов данных и констант, объявленных в следующих заголовочных файлах в CoreMIDIServer.framework:

  • CoreMIDIServer.h

  • MIDIDriver.h

Extended Audio File Services

о расширенных службах аудиофайла

Во многих случаях Вы используете Extended Audio File Services, обеспечивающую самый простой интерфейс для чтения и записи аудиоданных. Чтение файлов с помощью этого API является автоматически несжатым и/или преобразовывается в линейный формат PCM, который является собственным форматом для аудиоустройств. Точно так же можно использовать один вызов функции записать линейные аудиоданные PCM в файл в сжатом или преобразованном формате. Поддерживаемые Форматы аудиофайла и Форматы данных в OS X перечисляют форматы файлов тот Core Audio поддержки по умолчанию. Некоторые форматы имеют ограничения; например, по умолчанию, Core Audio может читать, но не запись, файлы MP3.

Службы уровня аппаратной абстракции (HAL)

Core Audio в OS X использует уровень аппаратной абстракции (HAL) для обеспечения непротиворечивого и предсказуемого интерфейса для приложений для контакта с аппаратными средствами. Каждая часть аппаратных средств представлена объектом аудиоустройства (тип AudioDevice) в HAL. Приложения могут запросить объект аудиоустройства получить информацию синхронизации, которая может использоваться для синхронизации или приводить в соответствие с задержкой.

HAL Services состоит из функций, типов данных и констант, объявленных в следующих заголовочных файлах в CoreAudio.framework:

  • AudioDriverPlugin.h

  • AudioHardware.h

  • AudioHardwarePlugin.h

  • CoreAudioTypes.h (Содержит типы данных и константы, используемые всеми интерфейсами Core Audio),

  • HostTime.h

Большинство разработчиков найдет, что модуль Apple AUHAL удовлетворяет их потребности аппаратного интерфейса, таким образом, они не должны взаимодействовать непосредственно с HAL Services. AUHAL ответственен за передачу аудиоданных, включая любое требуемое отображение канала, к указанному объекту аудиоустройства. Для получения дополнительной информации об использовании модуля AUHAL и других устройств вывода, посмотрите Взаимодействие через интерфейс с Аппаратными средствами.

Music Player Services

Music Player Services, доступная в OS X, позволяет Вам располагать и играть набор музыкальных треков MIDI. Это состоит из функций, типов данных и констант, объявленных в заголовочном файле MusicPlayer.h в AudioToolbox.framework.