Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылочная ссылка служб аудио-очереди платформы AudioToolbox

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка служб аудио-очереди

Этот документ описывает Audio Queue Services, интерфейс программирования C в Аудио платформе Панели инструментов, которая является частью Core Audio.

Аудио-очередь является программным объектом, который Вы используете для записи или игры аудио. Аудио-очередь выполняет работу:

  • Соединение с аудио аппаратными средствами

  • Управление памятью

  • Использование кодеков, по мере необходимости, для сжатых форматов аудио

  • Посредничество воспроизведения или записи

Audio Queue Services позволяет Вам записать и играть аудио в линейном PCM в сжатых форматах (таких как Apple Lossless и AAC), и в других форматах, для которых пользователи установили кодеки. Audio Queue Services также поддерживает запланированное воспроизведение и синхронизацию многократных аудио-очередей и синхронизацию аудио с видео.

Функции

  • Начинает играть или записывать аудио.

    Объявление

    Swift

    func AudioQueueStart(_ inAQ: AudioQueueRef, _ inDeviceStartTime: UnsafePointer<AudioTimeStamp>) -> OSStatus

    Objective C

    OSStatus AudioQueueStart ( AudioQueueRef inAQ, const AudioTimeStamp *inStartTime );

    Параметры

    inAQ

    Аудио-очередь для запуска.

    inDeviceStartTime

    Время, в которое должна запуститься аудио-очередь.

    Для указания времени начала относительно временной шкалы связанного аудиоустройства используйте mSampleTime поле AudioTimeStamp структура. Использовать NULL указать, что аудио-очередь должна запуститься как можно скорее.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Если связанное аудиоустройство уже не работает, эта функция запускает его.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Декодирует ставившие в очередь буферы в подготовке к воспроизведению.

    Объявление

    Swift

    func AudioQueuePrime(_ inAQ: AudioQueueRef, _ inNumberOfFramesToPrepare: UInt32, _ outNumberOfFramesPrepared: UnsafeMutablePointer<UInt32>) -> OSStatus

    Objective C

    OSStatus AudioQueuePrime ( AudioQueueRef inAQ, UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared );

    Параметры

    inAQ

    Аудио-очередь, чтобы быть запущенным.

    inNumberOfFramesToPrepare

    Число кадров для декодирования перед возвратом. Передача 0 декодировать все ставившие в очередь буферы.

    outNumberOfFramesPrepared

    На выводе, числе кадров, фактически декодируемых и подготовленных к воспроизведению. Передача NULL на вводе, если Вы Вы не интересуетесь этой информацией.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Эта функция декодирует ставившие в очередь буферы в подготовке к воспроизведению. Когда, по крайней мере, число кадров аудиосэмпла указало в, это возвращается inNumberOfFramesToPrepare если Вы передаете, декодируются и готовы играть, или ( 0 для inNumberOfFramesToPrepare параметр), когда декодируются все ставившие в очередь буферы.

    Для создания буфера аудиоданных готовым играть использовать AudioQueuePrime следующим образом:

    1. Вызвать AudioQueueEnqueueBuffer.

    2. Вызвать AudioQueuePrime.

    3. Вызвать AudioQueueStart.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Сбрасывает состояние декодера аудио-очереди.

    Объявление

    Swift

    func AudioQueueFlush(_ inAQ: AudioQueueRef) -> OSStatus

    Objective C

    OSStatus AudioQueueFlush ( AudioQueueRef inAQ );

    Параметры

    inAQ

    Аудио-очередь для сбрасывания.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

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

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

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Игра остановок или запись аудио.

    Объявление

    Swift

    func AudioQueueStop(_ inAQ: AudioQueueRef, _ inImmediate: Boolean) -> OSStatus

    Objective C

    OSStatus AudioQueueStop ( AudioQueueRef inAQ, Boolean inImmediate );

    Параметры

    inAQ

    Аудио-очередь для остановки.

    inImmediate

    Если Вы передаете true, остановка сразу происходит (т.е. синхронно). Если Вы передаете false, функция сразу возвращается, но аудио-очередь не останавливается, пока ее буферы с очередями не играются или зарегистрированы (т.е. остановка происходит асинхронно). Обратные вызовы аудио-очереди вызываются по мере необходимости, пока фактически не останавливается очередь.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Эта функция сбрасывает аудио-очередь, останавливает аудио аппаратные средства, связанные с очередью, если это не используется другими аудио службами и останавливает аудио-очередь. При записи эта функция обычно вызывается пользователем. Когда больше нет аудио для игры, при воспроизведении обратный вызов аудио-очереди воспроизведения должен вызвать эту функцию.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Воспроизведение аудио пауз или запись.

    Объявление

    Swift

    func AudioQueuePause(_ inAQ: AudioQueueRef) -> OSStatus

    Objective C

    OSStatus AudioQueuePause ( AudioQueueRef inAQ );

    Параметры

    inAQ

    Аудио-очередь для приостановки.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Приостановка аудио-очереди не влияет на буферы или сбрасывать аудио-очередь. Для возобновления воспроизведения или записи вызвать AudioQueueStart.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Сбрасывает аудио-очередь.

    Объявление

    Swift

    func AudioQueueReset(_ inAQ: AudioQueueRef) -> OSStatus

    Objective C

    OSStatus AudioQueueReset ( AudioQueueRef inAQ );

    Параметры

    inAQ

    Аудио-очередь для сброса.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Эта функция сразу сбрасывает аудио-очередь, сбрасывает любые буферы с очередями (вызывающий обратные вызовы по мере необходимости), удаляет все буферы из ранее запланированного использования и сбрасывает состояние цифровой обработки сигналов (DSP) и декодер.

    При организации очередей буферов после вызывания этой функции обработка не начинается, пока не сбрасываются декодер и состояние DSP аудио-очереди. Это могло бы создать слышимый разрыв (или «незначительный сбой»).

    Когда Вы вызываете, эта функция вызвана автоматически AudioQueueStop.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Создает новый объект аудио-очереди воспроизведения.

    Объявление

    Swift

    func AudioQueueNewOutput(_ inFormat: UnsafePointer<AudioStreamBasicDescription>, _ inCallbackProc: AudioQueueOutputCallback, _ inUserData: UnsafeMutablePointer<Void>, _ inCallbackRunLoop: CFRunLoop!, _ inCallbackRunLoopMode: CFString!, _ inFlags: UInt32, _ outAQ: UnsafeMutablePointer<AudioQueueRef>) -> OSStatus

    Objective C

    OSStatus AudioQueueNewOutput ( const AudioStreamBasicDescription *inFormat, AudioQueueOutputCallback inCallbackProc, void *inUserData, CFRunLoopRef inCallbackRunLoop, CFStringRef inCallbackRunLoopMode, UInt32 inFlags, AudioQueueRef *outAQ );

    Параметры

    inFormat

    Формат данных аудио для игры. Для линейного PCM только поддерживаются чередованные форматы. Сжатые форматы также поддерживаются.

    inCallbackProc

    Функция обратного вызова для использования с аудио-очередью воспроизведения. Когда аудио-очередь закончила получать буфер, аудио-очередь вызывает обратный вызов. Посмотрите AudioQueueOutputCallback.

    inUserData

    Пользовательская структура данных для использования с функцией обратного вызова.

    inCallbackRunLoop

    Цикл событий тот, на который функция обратного вызова, на которую указывают inCallbackProc параметр нужно вызвать. Если Вы указываете NULL, обратный вызов вызывается на одну из внутренних резьб аудио-очереди.

    inCallbackRunLoopMode

    Режим цикла выполнения, в котором можно вызвать функцию обратного вызова, указанную в inCallbackProc параметр. Как правило, Вы передаете kCFRunLoopCommonModes или используйте NULL, который эквивалентен. Можно принять решение создать собственный поток с собственными циклами выполнения. Для получения дополнительной информации о выполненных циклах посмотрите Циклы Выполнения и Ссылку CFRunLoop.

    inFlags

    Зарезервированный для будущего использования. Должен быть 0.

    outAQ

    На выводе, недавно создаваемом объекте аудио-очереди воспроизведения.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

    См. также

    AudioQueueOfflineRender

  • Создает новый объект аудио-очереди записи.

    Объявление

    Swift

    func AudioQueueNewInput(_ inFormat: UnsafePointer<AudioStreamBasicDescription>, _ inCallbackProc: AudioQueueInputCallback, _ inUserData: UnsafeMutablePointer<Void>, _ inCallbackRunLoop: CFRunLoop!, _ inCallbackRunLoopMode: CFString!, _ inFlags: UInt32, _ outAQ: UnsafeMutablePointer<AudioQueueRef>) -> OSStatus

    Objective C

    OSStatus AudioQueueNewInput ( const AudioStreamBasicDescription *inFormat, AudioQueueInputCallback inCallbackProc, void *inUserData, CFRunLoopRef inCallbackRunLoop, CFStringRef inCallbackRunLoopMode, UInt32 inFlags, AudioQueueRef *outAQ );

    Параметры

    inFormat

    Сжатые или несжатые аудиоданные форматируют для записи к. При записи к линейному PCM только поддерживаются чередованные форматы.

    inCallbackProc

    Функция обратного вызова для использования с аудио-очередью записи. Когда аудио-очередь закончила заполнять буфер, аудио-очередь вызывает эту функцию. Посмотрите AudioQueueInputCallback.

    inUserData

    Пользовательская структура данных для использования с функцией обратного вызова.

    inCallbackRunLoop

    Цикл событий тот, на который функция обратного вызова, на которую указывают inCallbackProc параметр нужно вызвать. Если Вы указываете NULL, обратный вызов вызывают на одной из внутренних резьб аудио-очереди.

    inCallbackRunLoopMode

    Режим цикла выполнения, в котором можно вызвать функцию обратного вызова, указанную в inCallbackProc параметр. Как правило, Вы передаете kCFRunLoopCommonModes или используйте NULL, который эквивалентен. Можно принять решение создать собственный поток с собственными циклами выполнения. Для получения дополнительной информации о выполненных циклах посмотрите Циклы Выполнения и Ссылку CFRunLoop.

    inFlags

    Зарезервированный для будущего использования. Должен быть 0.

    outAQ

    На выводе, недавно создаваемой аудио-очереди записи.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Избавляется от аудио-очереди.

    Объявление

    Swift

    func AudioQueueDispose(_ inAQ: AudioQueueRef, _ inImmediate: Boolean) -> OSStatus

    Objective C

    OSStatus AudioQueueDispose ( AudioQueueRef inAQ, Boolean inImmediate );

    Параметры

    inAQ

    Аудио-очередь Вы хотите избавиться.

    inImmediate

    Если Вы передаете true, от аудио-очереди сразу избавляются (т.е. синхронно). Если Вы передаете false, размещение не имеет место, пока все ставившие в очередь буферы не обрабатываются (т.е. асинхронно).

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

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

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

    См. также

    AudioQueueFlush

  • Спрашивает объект аудио-очереди выделить буфер аудио-очереди.

    Объявление

    Swift

    func AudioQueueAllocateBuffer(_ inAQ: AudioQueueRef, _ inBufferByteSize: UInt32, _ outBuffer: UnsafeMutablePointer<AudioQueueBufferRef>) -> OSStatus

    Objective C

    OSStatus AudioQueueAllocateBuffer ( AudioQueueRef inAQ, UInt32 inBufferByteSize, AudioQueueBufferRef *outBuffer );

    Параметры

    inAQ

    Аудио-очередь Вы хотите выделить буфер.

    inBufferByteSize

    Желаемая мощность нового буфера, в байтах. Надлежащая способность зависит от обработки, Вы выполните на данных, а также на формате аудиоданных.

    outBuffer

    На выводе, точках к недавно выделенному буферу аудио-очереди.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    После того, как выделенный, указатель на буфер аудио-очереди и мощность буфера не может быть изменен. Поле размера буфера, mAudioDataByteSize, то, которое указывает сумму допустимых данных, первоначально установлено в 0.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Спрашивает объект аудио-очереди выделить буфер аудио-очереди с пространством для описаний пакета.

    Объявление

    Swift

    func AudioQueueAllocateBufferWithPacketDescriptions(_ inAQ: AudioQueueRef, _ inBufferByteSize: UInt32, _ inNumberPacketDescriptions: UInt32, _ outBuffer: UnsafeMutablePointer<AudioQueueBufferRef>) -> OSStatus

    Objective C

    OSStatus AudioQueueAllocateBufferWithPacketDescriptions ( AudioQueueRef inAQ, UInt32 inBufferByteSize, UInt32 inNumberPacketDescriptions, AudioQueueBufferRef *outBuffer );

    Параметры

    inAQ

    Аудио-очередь Вы хотите выделить буфер.

    inBufferByteSize

    Желаемая информационная емкость нового буфера, в байтах. Надлежащая способность зависит от обработки, Вы выполните на данных, а также на формате аудиоданных.

    inNumberPacketDescriptions

    Желаемый размер описания пакета выстраивает в новом буфере аудио-очереди.

    outBuffer

    На выводе, точках к недавно выделенному буферу аудио-очереди.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Используйте эту функцию при выделении буфера аудио-очереди для использования с упакованным форматом данных VBR.

    После того, как выделенный, указатель на буфер аудио-очереди и мощность буфера не может быть изменен. Поле размера буфера, mAudioDataByteSize, то, которое указывает сумму допустимых данных, первоначально установлено в 0.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.6 и позже.

  • Просит аудио-очередь избавляться от буфера аудио-очереди.

    Объявление

    Swift

    func AudioQueueFreeBuffer(_ inAQ: AudioQueueRef, _ inBuffer: AudioQueueBufferRef) -> OSStatus

    Objective C

    OSStatus AudioQueueFreeBuffer ( AudioQueueRef inAQ, AudioQueueBufferRef inBuffer );

    Параметры

    inAQ

    Аудио-очередь, которой принадлежит буфер аудио-очереди, от которого Вы хотите избавиться.

    inBuffer

    Буфер для избавления.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Избавление от аудио-очереди также избавляется от своих буферов. Вызовите эту функцию, только если Вы хотите избавиться от определенного буфера, продолжая использовать аудио-очередь. Можно избавиться от буфера только, когда аудио-очередь, которой принадлежит он, останавливается (т.е. не обрабатывая аудиоданные).

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Добавляет буфер к буферной очереди аудио-очереди записи или воспроизведения.

    Объявление

    Swift

    func AudioQueueEnqueueBuffer(_ inAQ: AudioQueueRef, _ inBuffer: AudioQueueBufferRef, _ inNumPacketDescs: UInt32, _ inPacketDescs: UnsafePointer<AudioStreamPacketDescription>) -> OSStatus

    Objective C

    OSStatus AudioQueueEnqueueBuffer ( AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, UInt32 inNumPacketDescs, const AudioStreamPacketDescription *inPacketDescs );

    Параметры

    inAQ

    Аудио-очередь, которой принадлежит буфер аудио-очереди.

    inBuffer

    Буфер аудио-очереди, чтобы добавить к буферной очереди.

    inNumPacketDescs

    Число пакетов аудиоданных в inBuffer параметр. Используйте значение 0 для любой из следующих ситуаций:

    • При игре формата с постоянной скоростью передачи (CBR).

    • Когда аудио-очередь является записью (ввод) аудио-очередь.

    • Когда буфер с, который Вы повторно ставите в очередь был выделен AudioQueueAllocateBufferWithPacketDescriptions функция. В этом случае Ваш обратный вызов должен описать пакеты буфера в буфере mPacketDescriptions и mPacketDescriptionCount поля.

    inPacketDescs

    Массив описаний пакета. Используйте значение NULL для любой из следующих ситуаций:

    • При игре формата с постоянной скоростью передачи (CBR).

    • Когда аудио-очередь является вводом (записывающим) аудио-очередь.

    • Когда буфер с, который Вы повторно ставите в очередь был выделен AudioQueueAllocateBufferWithPacketDescriptions функция. В этом случае Ваш обратный вызов должен описать пакеты буфера в буфере mPacketDescriptions и mPacketDescriptionCount поля.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Обратные вызовы аудио-очереди используют эту функцию, чтобы повторно ставить в очередь буферы — размещение их “в последний раз в строке” в буферной очереди. Воспроизведение (или вывод) обратный вызов повторно ставит в очередь буфер после того, как буфер будет заполнен новыми аудиоданными (обычно от файла). Запись (или ввод) обратный вызов повторно ставит в очередь буфер после того, как содержание буфера было записано (обычно в файл).

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Добавляет буфер к буферной очереди объекта аудио-очереди воспроизведения, указывая время начала и другие настройки.

    Объявление

    Swift

    func AudioQueueEnqueueBufferWithParameters(_ inAQ: AudioQueueRef, _ inBuffer: AudioQueueBufferRef, _ inNumPacketDescs: UInt32, _ inPacketDescs: UnsafePointer<AudioStreamPacketDescription>, _ inTrimFramesAtStart: UInt32, _ inTrimFramesAtEnd: UInt32, _ inNumParamValues: UInt32, _ inParamValues: UnsafePointer<AudioQueueParameterEvent>, _ inStartTime: UnsafePointer<AudioTimeStamp>, _ outActualStartTime: UnsafeMutablePointer<AudioTimeStamp>) -> OSStatus

    Objective C

    OSStatus AudioQueueEnqueueBufferWithParameters ( AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, UInt32 inNumPacketDescs, const AudioStreamPacketDescription *inPacketDescs, UInt32 inTrimFramesAtStart, UInt32 inTrimFramesAtEnd, UInt32 inNumParamValues, const AudioQueueParameterEvent *inParamValues, const AudioTimeStamp *inStartTime, AudioTimeStamp *outActualStartTime );

    Параметры

    inAQ

    Объект аудио-очереди, которому принадлежит буфер аудио-очереди.

    inBuffer

    Буфер аудио-очереди, чтобы добавить к буферной очереди. Прежде, чем вызвать эту функцию, буфер должен содержать аудиоданные, которые будут играться.

    inNumPacketDescs

    Число пакетов аудиоданных в inBuffer параметр. Используйте значение 0 для любой из следующих ситуаций:

    • При игре формата с постоянной скоростью передачи (CBR).

    • Когда буфер с, который Вы повторно ставите в очередь был выделен AudioQueueAllocateBufferWithPacketDescriptions функция. В этом случае Ваш обратный вызов должен описать пакеты буфера в буфере mPacketDescriptions и mPacketDescriptionCount поля.

    inPacketDescs

    Массив описаний пакета. Используйте значение NULL для любой из следующих ситуаций:

    • При игре формата с постоянной скоростью передачи (CBR).

    • Когда буфер с, который Вы повторно ставите в очередь был выделен AudioQueueAllocateBufferWithPacketDescriptions функция. В этом случае Ваш обратный вызов должен описать пакеты буфера в буфере mPacketDescriptions и mPacketDescriptionCount поля.

    inTrimFramesAtStart

    Число воспламенения структурирует для пропуска в начале буфера.

    inTrimFramesAtEnd

    Число кадров для пропуска в конце буфера.

    inNumParamValues

    Число значений параметров аудио-очереди, на которые указывают inParamValues параметр. Если Вы не устанавливаете параметры, использовать 0.

    inParamValues

    Массив параметров для применения к буферу аудио-очереди. (В OS X v10.5, существует только один параметр аудио-очереди, kAudioQueueParam_Volume.), Если Вы не устанавливаете параметры для буфера, использовать NULL.

    Присвойте значения параметров перед воспроизведением — они не могут быть изменены, в то время как играет буфер. Когда буфер начинает играть, изменения в буферных параметрах аудио-очереди вступают в силу.

    inStartTime

    Желаемое время начала для игры буфера. Для указания времени относительно того, когда аудио-очередь запустилась используйте mSampleTime поле AudioTimeStamp структура. Использовать NULL чтобы указать, что буфер должен играть как можно скорее — который может быть после ранее поставлен в очередь, буферы заканчивают играть.

    Буферы играют в порядке, они ставятся в очередь (метод «первым пришел - первым вышел»). Если многократные буферы ставятся в очередь, времена запуска должны быть в порядке возрастания или NULL; иначе, ошибка происходит. Когда аудиоданные должны начать играть, игнорируя любые кадры для обрезки, указанные в, этот параметр указывает inTrimFramesAtStart параметр.

    outActualStartTime

    На выводе, время, когда буфер фактически начнет играть.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Можно осуществить некоторый контроль над буферной очередью с этой функцией. Можно присвоить настройки аудио-очереди, которые, в действительности, переносит буфер аудио-очереди, поскольку Вы ставите в очередь его. Следовательно, когда буфер аудио-очереди начинает играть, настройки вступают в силу.

    Эта функция применяется только для воспроизведения. Записывающие аудио-очереди не берут параметры и не поддерживают форматы с переменной скоростью передачи (VBR) (который мог бы потребовать обрезки).

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

    См. также

    AudioQueueEnqueueBuffer

  • Получает значение параметра аудио-очереди.

    Объявление

    Swift

    func AudioQueueGetParameter(_ inAQ: AudioQueueRef, _ inParamID: AudioQueueParameterID, _ outValue: UnsafeMutablePointer<AudioQueueParameterValue>) -> OSStatus

    Objective C

    OSStatus AudioQueueGetParameter ( AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue );

    Параметры

    inAQ

    Аудио-очередь, от которой Вы хотите получить значение параметра.

    inParamID

    ID параметра, значение которого Вы хотите получить. В OS X v10.5, аудио-очереди имеют один параметр в наличии: kAudioQueueParam_Volume, который управляет усилением воспроизведения. Посмотрите Параметры Аудио-очереди

    outValue

    На выводе, точках к текущей стоимости указанного параметра.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Можно получить доступ к текущим значениям параметров для аудио-очереди в любое время с этой функцией. Значение параметра аудио-очереди является суммой настроек, примененных при буферной гранулярности, с помощью AudioQueueEnqueueBufferWithParameters функция и настройки применились к аудио-очереди по сути, с помощью AudioQueueSetParameter функция.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

    См. также

    AudioQueueSetParameter

  • Устанавливает значение параметра аудио-очереди воспроизведения.

    Объявление

    Swift

    func AudioQueueSetParameter(_ inAQ: AudioQueueRef, _ inParamID: AudioQueueParameterID, _ inValue: AudioQueueParameterValue) -> OSStatus

    Objective C

    OSStatus AudioQueueSetParameter ( AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue inValue );

    Параметры

    inAQ

    Аудио-очередь воспроизведения, на которой Вы хотите установить значение параметра.

    inParamID

    ID параметра Вы хотите установить. В OS X v10.5, аудио-очереди имеют один параметр в наличии: kAudioQueueParam_Volume, который управляет усилением воспроизведения. Посмотрите Параметры Аудио-очереди.

    inValue

    Значение параметра для установки.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Используйте эту функцию для изменения настроек для аудио-очереди воспроизведения непосредственно. Изменения сразу вступают в силу. Для установки усиления воспроизведения при гранулярности буфера аудио-очереди используйте AudioQueueEnqueueBufferWithParameters функция.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Создает объект временной шкалы для аудио-очереди.

    Объявление

    Swift

    func AudioQueueCreateTimeline(_ inAQ: AudioQueueRef, _ outTimeLine: UnsafeMutablePointer<AudioQueueTimelineRef>) -> OSStatus

    Objective C

    OSStatus AudioQueueCreateTimeline ( AudioQueueRef inAQ, AudioQueueTimelineRef *outTimeline );

    Параметры

    inAQ

    Аудио-очередь для соединения с новым объектом временной шкалы.

    outTimeLine

    На выводе, недавно создаваемом объекте временной шкалы.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Создайте объект временной шкалы, если Вы хотите получить информацию разрыва временной шкалы от аудио-очереди с помощью AudioQueueGetCurrentTime функция.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Избавляется от объекта временной шкалы аудио-очереди.

    Объявление

    Swift

    func AudioQueueDisposeTimeline(_ inAQ: AudioQueueRef, _ inTimeLine: AudioQueueTimelineRef) -> OSStatus

    Objective C

    OSStatus AudioQueueDisposeTimeline ( AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline );

    Параметры

    inAQ

    Аудио-очередь, связанная с временной шкалой, возражает, что Вы хотите избавиться.

    inTimeLine

    Объект временной шкалы избавиться.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Избавление от аудио-очереди автоматически избавляется от любых связанных ресурсов, включая объект временной шкалы. Вызовите эту функцию, только если Вы хотите избавиться от объекта временной шкалы а не аудио-очереди, связанной с нею.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Получает текущее время аудио устройства, связанного с аудио-очередью.

    Объявление

    Swift

    func AudioQueueDeviceGetCurrentTime(_ inAQ: AudioQueueRef, _ outDeviceTime: UnsafeMutablePointer<AudioTimeStamp>) -> OSStatus

    Objective C

    OSStatus AudioQueueDeviceGetCurrentTime ( AudioQueueRef inAQ, AudioTimeStamp *outTimeStamp );

    Параметры

    inAQ

    Аудио-очередь, связанное аудиоустройство которой должно быть запрошено.

    outDeviceTime

    На выводе текущее время аудио устройства связалось с аудио-очередью. Если устройство не работает, единственное допустимое поле в аудио структуре метки времени mHostTime.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Эта функция возвращает значение, работает ли аудио устройство, связанное с аудио-очередью. Подобное AudioDeviceGetCurrentTime функция, объявленная в AudioHardware.h заголовочный файл, возвращает ошибку в этом случае.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

    См. также

    AudioQueueGetCurrentTime
    AudioDeviceGetCurrentTime

  • Получает время начала, для аудио устройства, которое является самым близким к требуемому времени начала.

    Объявление

    Swift

    func AudioQueueDeviceGetNearestStartTime(_ inAQ: AudioQueueRef, _ ioRequestedDeviceTime: UnsafeMutablePointer<AudioTimeStamp>, _ inFlags: UInt32) -> OSStatus

    Objective C

    OSStatus AudioQueueDeviceGetNearestStartTime ( AudioQueueRef inAQ, AudioTimeStamp *ioRequestedStartTime, UInt32 inFlags );

    Параметры

    inAQ

    Аудио-очередь, время начала связанного аудио устройства которой Вы хотите получить.

    ioRequestedDeviceTime

    На вводе, требуемое время начала. На выводе, время фактического начала.

    inFlags

    Зарезервированный для будущего использования. Передача 0.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

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

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Преобразовывает время для связанного аудио устройства аудио-очереди от одного представления основы времени до другого.

    Объявление

    Swift

    func AudioQueueDeviceTranslateTime(_ inAQ: AudioQueueRef, _ inDeviceTime: UnsafePointer<AudioTimeStamp>, _ outDeviceTime: UnsafeMutablePointer<AudioTimeStamp>) -> OSStatus

    Objective C

    OSStatus AudioQueueDeviceTranslateTime ( AudioQueueRef inAQ, const AudioTimeStamp *inTime, AudioTimeStamp *outTime );

    Параметры

    inAQ

    Аудио-очередь связалась с устройством, времена которого переводятся.

    inDeviceTime

    Время, которое будет переведено.

    outDeviceTime

    На выводе, переведенное время.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

    Устройство должно работать за этой функцией для обеспечения результата. Для объяснения различных представлений основы времени для аудио устройства посмотрите AudioTimeStamp в ссылке типов данных Core Audio.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Получает текущее время аудио-очереди.

    Объявление

    Swift

    func AudioQueueGetCurrentTime(_ inAQ: AudioQueueRef, _ inTimeline: AudioQueueTimelineRef, _ outTime: UnsafeMutablePointer<AudioTimeStamp>, _ outTimelineDiscontinuity: UnsafeMutablePointer<Boolean>) -> OSStatus

    Objective C

    OSStatus AudioQueueGetCurrentTime ( AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline, AudioTimeStamp *outTimeStamp, Boolean *outTimelineDiscontinuity );

    Параметры

    inAQ

    Аудио-очередь, текущее время которой Вы хотите получить.

    inTimeline

    Временная шкала аудио-очереди возражает, которому сообщают о разрывах временной шкалы. Использовать NULL если аудио-очередь не имеет связанного объекта временной шкалы.

    outTime

    На выводе, текущее время аудио-очереди. mSampleTime поле представляет время аудио-очереди с точки зрения частоты дискретизации аудио-очереди, относительно того, когда очередь запустилась или запустится.

    outTimelineDiscontinuity

    На выводе, true если был разрыв временной шкалы, или false если не было никакого разрыва. Если аудио-очередь не имеет связанного объекта временной шкалы, этот параметр всегда NULL.

    Например, если частота дискретизации изменяется для аудио устройства, связанного с аудио-очередью, разрыв временной шкалы может произойти.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Устанавливает режим рендеринга и формат аудио для аудио-очереди воспроизведения.

    Объявление

    Swift

    func AudioQueueSetOfflineRenderFormat(_ inAQ: AudioQueueRef, _ inFormat: UnsafePointer<AudioStreamBasicDescription>, _ inLayout: UnsafePointer<AudioChannelLayout>) -> OSStatus

    Objective C

    OSStatus AudioQueueSetOfflineRenderFormat ( AudioQueueRef inAQ, const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout );

    Параметры

    inAQ

    Аудио-очередь воспроизведения, чья, представляя режим и формат аудио Вы хотите установить.

    inFormat

    Формат аудио для оффлайнового рендеринга. Формат должен быть своего рода линейным PCM. Если формат имеет больше чем один канал, он должен быть чередован. Для получения дополнительной информации о AudioStreamBasicDescription структура, посмотрите Ссылку Типов данных Core Audio.

    Передача NULL отключить оффлайн рендеринг и возвратить аудио-очередь нормальному выводу к аудиоустройству.

    inLayout

    Расположение канала для оффлайнового рендеринга. Для получения дополнительной информации о AudioChannelLayout структура, посмотрите Ссылку Типов данных Core Audio.

    Передача NULL при использовании этой функции для отключения оффлайн рендеринга.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

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

    Можно также использовать эту функцию для восстановления аудио-очереди к нормальному режиму рендеринга путем передачи NULL в inFormat и inLayout параметры.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

    См. также

    AudioQueueOfflineRender

  • Аудио экспорта к буферу, вместо к устройству, с помощью аудио-очереди воспроизведения.

    Объявление

    Swift

    func AudioQueueOfflineRender(_ inAQ: AudioQueueRef, _ inTimestamp: UnsafePointer<AudioTimeStamp>, _ ioBuffer: AudioQueueBufferRef, _ inRequestedFrames: UInt32) -> OSStatus

    Objective C

    OSStatus AudioQueueOfflineRender ( AudioQueueRef inAQ, const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames );

    Параметры

    inAQ

    Аудио-очередь воспроизведения.

    inTimestamp

    Время, соответствуя началу текущего буфера аудио-очереди. Эта функция использует mSampleTime поле AudioTimeStamp структура данных.

    ioBuffer

    На вводе буфер Вы предоставляете для содержания представленный аудиоданными. На выводе, представленных аудиоданных, которые можно тогда записать в файл.

    inRequestedFrames

    Число кадров аудио для рендеринга.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата Аудио-очереди.

    Обсуждение

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

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

Обратные вызовы

  • Вызванный системой, когда аудио-очередь записи закончила заполнять буфер аудио-очереди.

    Объявление

    Swift

    typealias AudioQueueInputCallback = CFunctionPointer<((UnsafeMutablePointer<Void>, AudioQueueRef, AudioQueueBufferRef, UnsafePointer<AudioTimeStamp>, UInt32, UnsafePointer<AudioStreamPacketDescription>) -> Void)>

    Objective C

    typedef void (*AudioQueueInputCallback) ( void *inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, const AudioTimeStamp *inStartTime, UInt32 inNumberPacketDescriptions, const AudioStreamPacketDescription *inPacketDescs );

    Параметры

    inUserData

    Пользовательские данные Вы указали в inUserData параметр AudioQueueNewInput функция. Как правило, это включает формат и информацию состояния для аудио-очереди.

    inAQ

    Аудио-очередь записи, вызвавшая обратный вызов.

    inBuffer

    Буфер аудио-очереди, недавно заполненный аудио-очередью записи, содержа новые аудиоданные Ваш обратный вызов, должен записать.

    inStartTime

    Демонстрационное время для запуска буфера аудио-очереди. Этот параметр не используется в основной записи.

    inNumberPacketDescriptions

    Число пакетов аудиоданных отправило к обратному вызову в inBuffer параметр. При записи в формате с постоянной скоростью передачи (CBR) аудио-очередь устанавливает этот параметр на NULL.

    inPacketDescs

    Для сжатых форматов, требующих описаний пакета, набора описаний пакета, произведенных кодером для аудиоданных в inBuffer параметр. При записи в формате CBR аудио-очередь устанавливает этот параметр на NULL.

    Обсуждение

    Вы указываете обратный вызов аудио-очереди записи при вызове AudioQueueNewInput функция. Обратный вызов вызывается каждый раз, когда его аудио-очередь записи заполнила буфер аудио-очереди новыми аудиоданными. Как правило, Ваш обратный вызов пишет данные в файл или другой буфер, и затем повторно ставит в очередь буфер аудио-очереди для получения большего количества данных.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Вызванный системой, когда буфер аудио-очереди доступен для повторного использования.

    Объявление

    Swift

    typealias AudioQueueOutputCallback = CFunctionPointer<((UnsafeMutablePointer<Void>, AudioQueueRef, AudioQueueBufferRef) -> Void)>

    Objective C

    typedef void (*AudioQueueOutputCallback) ( void *inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer );

    Параметры

    inUserData

    Пользовательские данные Вы указали в inUserData параметр AudioQueueNewOutput функция. Как правило, это включает формат данных и информацию состояния для аудио-очереди.

    inAQ

    Аудио-очередь воспроизведения, вызвавшая обратный вызов.

    inBuffer

    Буфер аудио-очереди, недавно доступный заливке, потому что аудио-очередь воспроизведения получила свое содержание.

    Обсуждение

    Эта функция обратного вызова вызывается каждый раз, когда ее связанная аудио-очередь воспроизведения получила данные от буфера аудио-очереди, в которой точке буфер доступен для повторного использования. Недавно доступный буфер отправляется в этот обратный вызов в inBuffer параметр. Как правило, Вы пишете этот обратный вызов в:

    1. Заполните недавно доступный буфер следующим набором аудиоданных от файла или другой буфер.

    2. Повторно ставьте в очередь буфер для воспроизведения. Чтобы повторно ставить в очередь буфер, используйте AudioQueueEnqueueBuffer или AudioQueueEnqueueBufferWithParameters функция.

    Для соединения этого обратного вызова с аудио-очередью воспроизведения обеспечьте ссылку на обратный вызов, поскольку Вы создаете аудио-очередь. Посмотрите inCallbackProc параметр AudioQueueNewOutput функция.

    Когда система вызывает этот обратный вызов, Вы не можете предположить, что игрались аудиоданные от недавно доступного буфера. Для описания того, как проверить, что звук закончил играть, считайте Обсуждение для AudioQueuePropertyListenerProc функция обратного вызова.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Вызванный системой, когда указанное свойство аудио-очереди изменяет значение.

    Объявление

    Swift

    typealias AudioQueuePropertyListenerProc = CFunctionPointer<((UnsafeMutablePointer<Void>, AudioQueueRef, AudioQueuePropertyID) -> Void)>

    Objective C

    typedef void (*AudioQueuePropertyListenerProc) ( void *inUserData, AudioQueueRef inAQ, AudioQueuePropertyID inID );

    Параметры

    inUserData

    Пользовательские данные Вы указали в inUserData параметр AudioQueueAddPropertyListener функция.

    inAQ

    Аудио-очередь записи или воспроизведения, вызвавшая обратный вызов.

    inID

    ID свойства, изменения значения которого Вы хотите наблюдать.

    Обсуждение

    Установите этот обратный вызов в аудио-очереди путем вызова AudioQueueAddPropertyListener функция. Например, скажите, что Вы хотите, чтобы Ваше приложение было уведомлено после вызова AudioQueueStop функция с inImmedate набор параметра к false, то аудио закончило играть. Выполните эти шаги:

    1. Определите эту функцию обратного вызова слушателя свойства для прислушиваний к изменениям в kAudioQueueProperty_IsRunning свойство.

    2. Установите этот обратный вызов, с помощью AudioQueueAddPropertyListener функция, в аудио-очереди воспроизведения, которую Вы хотите контролировать.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

Типы данных

  • Определяет буфер аудио-очереди.

    Объявление

    Swift

    struct AudioQueueBuffer { var mAudioDataBytesCapacity: UInt32 var mAudioData: UnsafeMutablePointer<Void> var mAudioDataByteSize: UInt32 var mUserData: UnsafeMutablePointer<Void> var mPacketDescriptionCapacity: UInt32 var mPacketDescriptions: UnsafeMutablePointer<AudioStreamPacketDescription> var mPacketDescriptionCount: UInt32 }

    Objective C

    typedef struct AudioQueueBuffer { const UInt32 mAudioDataBytesCapacity; void *const mAudioData; UInt32 mAudioDataByteSize; void *mUserData; const UInt32 mPacketDescriptionCapacity; AudioStreamPacketDescription *const mPacketDescriptions; UInt32 mPacketDescriptionCount; } AudioQueueBuffer; typedef AudioQueueBuffer *AudioQueueBufferRef;

    Поля

    mAudioDataBytesCapacity

    Размер буфера аудио-очереди, в байтах. Когда буфер выделяется и не может быть изменен, этот размер установлен.

    mAudioData

    Аудиоданным принадлежал буфер аудио-очереди. Буферный адрес не может быть изменен.

    mAudioDataByteSize

    Число байтов допустимых аудиоданных в буфере аудио-очереди mAudioData поле, первоначально набор к 0. Ваш обратный вызов должен установить это значение для аудио-очереди воспроизведения; для записи аудио-очередь записи устанавливает значение.

    mUserData

    Пользовательская структура данных Вы указываете, для использования Вашей функцией обратного вызова, при создании записи или воспроизводите аудио-очередь.

    mPacketDescriptionCapacity

    Максимальное количество описаний пакета, которые могут быть сохранены в mPacketDescriptions поле.

    mPacketDescriptions

    Массив AudioStreamPacketDescription структуры для буфера.

    mPacketDescriptionCount

    Число допустимых описаний пакета в буфере. Вы устанавливаете это значение при обеспечении буферов для воспроизведения. Аудио-очередь устанавливает это значение при возврате буферов из очереди записи.

    Обсуждение

    Каждая аудио-очередь имеет связанный набор буферов аудио-очереди. Для выделения буфера вызовите AudioQueueAllocateBuffer функция. Для избавления от буфера вызовите AudioQueueFreeBuffer функция.

    Если использование VBR сжало формат аудиоданных, можно хотеть вместо этого использовать AudioQueueAllocateBufferWithPacketDescriptions функция. Эта функция выделяет буфер с дополнительным пространством для описаний пакета. mPacketDescriptionCapacity, mPacketDescriptions, и mPacketDescriptionCount поля могут только использоваться с буферами, выделенными с AudioQueueAllocateBufferWithPacketDescriptions.

    Доступность

    Доступный в OS X v10.5 и позже.

  • Указатель на буфер аудио-очереди.

    Объявление

    Swift

    typealias AudioQueueBufferRef = UnsafeMutablePointer<AudioQueueBuffer>

    Objective C

    typedef AudioQueueBuffer *AudioQueueBufferRef;

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Определяет непрозрачный тип данных, представляющий аудио-очередь.

    Объявление

    Swift

    typealias AudioQueueRef = COpaquePointer

    Objective C

    typedef struct OpaqueAudioQueue *AudioQueueRef;

    Обсуждение

    Аудио-очередь является программным объектом, который Вы используете для записи или игры аудио в OS X. Это выполняет работу:

    • Соединение с аудио аппаратными средствами

    • Управление памятью

    • Использование кодеков, по мере необходимости, для сжатых форматов аудио

    • Посредничество записи или воспроизведения

    Вы создаете, используете и избавляетесь от аудио-очередей с помощью функций, описанных в Функциях Аудио-очереди.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Определяет непрозрачный тип данных, представляющий объект временной шкалы аудио-очереди.

    Объявление

    Swift

    typealias AudioQueueTimelineRef = COpaquePointer

    Objective C

    typedef struct OpaqueAudioQueueTimeline *AudioQueueTimelineRef;

    Обсуждение

    Можно использовать объект временной шкалы наблюдать разрывы времени в аудио устройстве, связанном с аудио-очередью. Когда звук ожидался, разрыв является, например, периодом тишины. Причины разрывов включают изменения в перегрузки обработки данных или состояние устройства. Посмотрите Технические Вопросы и ответы 1467, Предупреждения Перегрузки CoreAudio. Вы запрашиваете объект временной шкалы путем передачи его в качестве параметра AudioQueueGetCurrentTime функция.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Указывает информацию об измерении текущего уровня для одного канала аудио-очереди..

    Объявление

    Swift

    struct AudioQueueLevelMeterState { var mAveragePower: Float32 var mPeakPower: Float32 }

    Objective C

    typedef struct AudioQueueLevelMeterState { Float32 mAveragePower; Float32 mPeakPower; }; AudioQueueLevelMeterState;

    Поля

    mAveragePower

    Среднее питание RMS звукового канала.

    mPeakPower

    Пиковое питание RMS звукового канала.

    Доступность

    Доступный в OS X v10.5 и позже.

  • Указывает значение параметра аудио-очереди и присваиваемое значение.

    Объявление

    Swift

    struct AudioQueueParameterEvent { var mID: AudioQueueParameterID var mValue: AudioQueueParameterValue }

    Objective C

    struct AudioQueueParameterEvent { AudioQueueParameterID mID; AudioQueueParameterValue mValue; }; typedef struct AudioQueueParameterEvent AudioQueueParameterEvent;

    Поля

    mID

    Параметр.

    mValue

    Значение указанного параметра.

    Обсуждение

    Вы используете эту структуру с AudioQueueEnqueueBufferWithParameters функция. Посмотрите что функция и Параметры Аудио-очереди, для получения дополнительной информации.

    Доступность

    Доступный в OS X v10.5 и позже.

  • A UInt32 значение, однозначно определяющее параметр аудио-очереди.

    Объявление

    Swift

    typealias AudioQueueParameterID = UInt32

    Objective C

    typedef UInt32 AudioQueueParameterID;

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • A Float32 значение для параметра аудио-очереди.

    Объявление

    Swift

    typealias AudioQueueParameterValue = Float32

    Objective C

    typedef Float32 AudioQueueParameterValue;

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

Константы

  • Идентификаторы для свойств аудио-очереди.

    Объявление

    Swift

    typealias AudioQueuePropertyID = UInt32

    Objective C

    enum { kAudioQueueProperty_IsRunning = 'aqrn', kAudioQueueDeviceProperty_SampleRate = 'aqsr', kAudioQueueDeviceProperty_NumberChannels = 'aqdc', kAudioQueueProperty_CurrentDevice = 'aqcd', kAudioQueueProperty_MagicCookie = 'aqmc', kAudioQueueProperty_MaximumOutputPacketSize = 'xops', kAudioQueueProperty_StreamDescription = 'aqft', kAudioQueueProperty_ChannelLayout = 'aqcl', kAudioQueueProperty_EnableLevelMetering = 'aqme', kAudioQueueProperty_CurrentLevelMeter = 'aqmv', kAudioQueueProperty_CurrentLevelMeterDB = 'aqmd', kAudioQueueProperty_DecodeBufferSizeFrames = 'dcbf', kAudioQueueProperty_ConverterError = 'qcve' }; typedef UInt32 AudioQueuePropertyID;

    Константы

    • kAudioQueueProperty_IsRunning

      kAudioQueueProperty_IsRunning

      Значение является только для чтения UInt32 значение, указывающее, работает ли аудио-очередь. Ненулевое значение означает работать; 0 средние значения остановились. Уведомление отправляется, когда связанная аудио-очередь запускается или останавливается, который может произойти когда-то после AudioQueueStart или AudioQueueStop функция вызвана.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueDeviceProperty_SampleRate

      kAudioQueueDeviceProperty_SampleRate

      Значение является только для чтения Float64 значение, представляющее частоту дискретизации аудио устройства, связалось с аудио-очередью.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueDeviceProperty_NumberChannels

      kAudioQueueDeviceProperty_NumberChannels

      Значение является только для чтения UInt32 значение, представляющее число каналов в аудио устройстве, связалось с аудио-очередью.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueProperty_CurrentDevice

      kAudioQueueProperty_CurrentDevice

      Значение является чтением-записью CFStringRef объект, представляющий уникальный идентификатор (UID) аудио устройства, связался с аудио-очередью.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueProperty_MagicCookie

      kAudioQueueProperty_MagicCookie

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

      Доступный в OS X v10.5 и позже.

    • kAudioQueueProperty_MaximumOutputPacketSize

      kAudioQueueProperty_MaximumOutputPacketSize

      Значение является только для чтенияUInt32 значение, которое является размером, в байтах, самого большого единственного пакета данных в выходном формате. Прежде всего полезный при кодировании VBR сжал данные.

      Доступный в OS X v10.6 и позже.

    • kAudioQueueProperty_StreamDescription

      kAudioQueueProperty_StreamDescription

      Значение является только для чтения AudioStreamBasicDescription структура, указывая формат данных аудио-очереди. Прежде всего полезный для получения полного ASBD при записи, в случаях, где Вы первоначально указываете частоту дискретизации 0.

      Доступный в OS X v10.6 и позже.

    • kAudioQueueProperty_ChannelLayout

      kAudioQueueProperty_ChannelLayout

      Значение является чтением-записью AudioChannelLayout структура, описывающая расположение канала аудио-очереди. Число каналов в расположении должно соответствовать число каналов в формате аудио. Это свойство обычно не используется в случае одного или двух аудио канала. Больше чем для двух каналов (такой как в случае 5,1 объемного звука), Вы, возможно, должны указать расположение канала для указания порядка канала, такой, как оставлено, затем центрируетесь, затем право.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueProperty_EnableLevelMetering

      kAudioQueueProperty_EnableLevelMetering

      Значение является чтением-записью UInt32 значение, указывающее, включено ли измерение уровня звука для аудио-очереди. 0 = измерение прочь, 1 = измерение на.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueProperty_CurrentLevelMeter

      kAudioQueueProperty_CurrentLevelMeter

      Значение является массивом только для чтения AudioQueueLevelMeterState структуры, один элемент матрицы на звуковой канал. Задействованные значения в структуре находятся в диапазоне 0 (для тишины) к 1 (указание максимального уровня).

      Доступный в OS X v10.5 и позже.

    • kAudioQueueProperty_CurrentLevelMeterDB

      kAudioQueueProperty_CurrentLevelMeterDB

      Значение является массивом только для чтения AudioQueueLevelMeterState структуры, один элемент матрицы на звуковой канал. Задействованные значения в структуре находятся в децибелах.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueProperty_DecodeBufferSizeFrames

      kAudioQueueProperty_DecodeBufferSizeFrames

      Значение является чтением-записью UInt32 значение, которое является размером буфера, в который воспроизведение (вывод) аудио-очередь декодирует буферы. Более крупный буфер обеспечивает больше надежности и лучшей долгосрочной производительности за счет памяти и уменьшенной скорости отклика в некоторых ситуациях.

      Доступный в OS X v10.6 и позже.

    • kAudioQueueProperty_ConverterError

      kAudioQueueProperty_ConverterError

      Значение является только для чтения UInt32 значение, указывающее новую ошибку (если таковые имеются) встреченный внутренним процессом кодирования/декодирования аудио-очереди.

      Доступный в OS X v10.8 и позже.

    Обсуждение

    Получить уведомление, которое изменило определенное свойство аудио-очереди:

    1. Определите обратный вызов слушателя свойства, сославшись на желаемое свойство ID аудио-очереди. Базируйте обратный вызов на AudioQueuePropertyListenerProc объявление функции обратного вызова.

    2. Присвойте обратный вызов аудио-очереди с помощью AudioQueueAddPropertyListener функция.

    3. Когда Вы получите измененное на свойство уведомление, вызовите AudioQueueGetProperty функция для получения текущей стоимости свойства.

    Оператор импорта

    Objective C

    @import AudioToolbox;

    Swift

    import AudioToolbox

    Доступность

    Доступный в OS X v10.5 и позже.

  • Идентификаторы для параметров аудио-очереди.

    Объявление

    Swift

    var kAudioQueueParam_Volume: Int { get } var kAudioQueueParam_PlayRate: Int { get } var kAudioQueueParam_Pitch: Int { get } var kAudioQueueParam_VolumeRampTime: Int { get } var kAudioQueueParam_Pan: Int { get }

    Objective C

    enum { kAudioQueueParam_Volume = 1 kAudioQueueParam_PlayRate = 2, kAudioQueueParam_Pitch = 3, kAudioQueueParam_VolumeRampTime = 4, kAudioQueueParam_Pan = 13 }; typedef UInt32 AudioQueueParameterID;

    Константы

    • kAudioQueueParam_Volume

      kAudioQueueParam_Volume

      Громкость воспроизведения для аудио-очереди, в пределах от 0.0 через 1.0 в линейной шкале. Значение 0.0 указывает тишину; значение 1.0 (значение по умолчанию), указывает полный объем для экземпляра аудио-очереди.

      Используйте это свойство для управления объемом аудио-очереди относительно другого аудиовыхода.

      Для обеспечения UI в iOS для корректировки системного объема воспроизведения аудио используйте MPVolumeView класс, обеспечивающий управление воспроизведением носителей, которое ожидают пользователи iOS и чье появление можно настроить.

      Доступный в OS X v10.5 и позже.

    • kAudioQueueParam_PlayRate

      kAudioQueueParam_PlayRate

      Скорость воспроизведения для аудио-очереди, в диапазоне 0.5 через 2.0. Значение 1.0 (значение по умолчанию), указывает, что аудио-очередь должна играть при ее нормальном темпе.

      Этот параметр применим, только если включен процессор подачи времени.

      Доступный в OS X v10.6 и позже.

    • kAudioQueueParam_Pitch

      kAudioQueueParam_Pitch

      Число центов к сдвигу подачи воспроизведение аудио-очереди, в диапазоне -2400 через 2400 центы (где 1 200 центов соответствует одной музыкальной октаве.)

      Этот параметр применим, только если включен процессор времени/подачи.

      Доступный в OS X v10.6 и позже.

    • kAudioQueueParam_VolumeRampTime

      kAudioQueueParam_VolumeRampTime

      Число секунд, за которые сползается изменение объема.

      Например, для исчезновения от единичного усиления вниз для глушения в течение 1 секунды установите этот параметр на 1 и затем набор kAudioQueueParam_Volume параметр к 0.

      Доступный в OS X v10.7 и позже.

    • kAudioQueueParam_Pan

      kAudioQueueParam_Pan

      Позиция панорамирования стерео источника. Для монофонического источника панорамирование определяется следующим образом:

      • – 1 = крайне левые

      •  0 = центр

      • +1 = трудное право

      Для стереофонического источника этот параметр влияет на левый/правильный баланс. Для многоканального источника этот параметр не имеет никакого эффекта.

      Доступный в OS X v10.7 и позже.

    Обсуждение

    Эти параметры применяются только для воспроизведения аудио-очередей. Можно установить параметр аудио-очереди воспроизведения одним из двух способов:

    • Установите значение для вступления в силу сразу с помощью AudioQueueSetParameter функция.

    • Запланируйте значение для вступления в силу, когда определенная аудио-очередь буферизует игры. Вы предоставляете параметр при постановке в очередь буфера. Новое значение применяется к аудио-очереди, которой принадлежит буфер, когда представляется тот буфер.

    AudioQueueGetParameter функционируйте всегда возвращает текущую стоимость параметра для аудио-очереди.

Коды результата

Эта таблица приводит коды результата, определенные для Audio Queue Services.

  • Указанный буфер аудио-очереди не принадлежит указанной аудио-очереди.

    Значение

    - 66687

    Описание

    Указанный буфер аудио-очереди не принадлежит указанной аудио-очереди.

    Доступный в OS X v10.5 и позже.

  • Буфер аудио-очереди пуст (т.е. mAudioDataByteSize поле = 0).

    Значение

    - 66686

    Описание

    Буфер аудио-очереди пуст (т.е. mAudioDataByteSize поле = 0).

    Доступный в OS X v10.5 и позже.

  • Функция не может действовать на аудио-очередь, потому что от этого асинхронно избавляются.

    Значение

    - 66685

    Описание

    Функция не может действовать на аудио-очередь, потому что от этого асинхронно избавляются.

    Доступный в OS X v10.5 и позже.

  • Указанное свойство ID недопустимо.

    Значение

    - 66684

    Описание

    Указанное свойство ID недопустимо.

    Доступный в OS X v10.5 и позже.

  • Размер указанного свойства недопустим.

    Значение

    - 66683

    Описание

    Размер указанного свойства недопустим.

    Доступный в OS X v10.5 и позже.

  • Указанный параметр ID недопустим.

    Значение

    - 66682

    Описание

    Указанный параметр ID недопустим.

    Доступный в OS X v10.5 и позже.

  • Аудио-очередь встретилась с проблемой и не может запуститься.

    Значение

    - 66681

    Описание

    Аудио-очередь встретилась с проблемой и не может запуститься.

    Доступный в OS X v10.5 и позже.

  • Указанное аудио устройство не могло быть расположено.

    Значение

    - 66680

    Описание

    Указанное аудио устройство не могло быть расположено.

    Доступный в OS X v10.5 и позже.

  • От буфера аудио-очереди нельзя избавиться, когда он ставится в очередь.

    Значение

    - 66679

    Описание

    От буфера аудио-очереди нельзя избавиться, когда он ставится в очередь.

    Доступный в OS X v10.5 и позже.

  • Очередь работает, но функция может только воздействовать на очередь, когда это останавливается, или наоборот.

    Значение

    - 66678

    Описание

    Очередь работает, но функция может только воздействовать на очередь, когда это останавливается, или наоборот.

    Доступный в OS X v10.5 и позже.

  • Очередь является входной очередью, но функция может только воздействовать на очередь вывода, или наоборот.

    Значение

    - 66677

    Описание

    Очередь является входной очередью, но функция может только воздействовать на очередь вывода, или наоборот.

    Доступный в OS X v10.5 и позже.

  • У Вас нет требуемых полномочий вызвать функцию.

    Значение

    - 66676

    Описание

    У Вас нет требуемых полномочий вызвать функцию.

    Доступный в OS X v10.6 и позже.

  • Используемое значение свойства не допустимо.

    Значение

    - 66675

    Описание

    Используемое значение свойства не допустимо.

    Доступный в OS X v10.6 и позже.

  • Во время вызова к AudioQueuePrime функция, аудио преобразователю аудио-очереди не удалось преобразовать требуемое число демонстрационных кадров.

    Значение

    - 66674

    Описание

    Во время вызова к AudioQueuePrime функция, аудио преобразователю аудио-очереди не удалось преобразовать требуемое число демонстрационных кадров.

    Доступный в OS X v10.6 и позже.

  • Требуемый кодек не был найден.

    Значение

    - 66673

    Описание

    Требуемый кодек не был найден.

    Доступный в OS X v10.6 и позже.

  • К кодеку нельзя было получить доступ.

    Значение

    - 66672

    Описание

    К кодеку нельзя было получить доступ.

    Доступный в OS X v10.7 и позже.

  • В iPhone OS аудио сервер вышел, заставив аудио-очередь стать недопустимым.

    Значение

    - 66671

    Описание

    В iPhone OS аудио сервер вышел, заставив аудио-очередь стать недопустимым.

    Доступный в OS X v10.7 и позже.

  • Во время записи были потеряны данные, потому что не было никакого ставившего в очередь буфера для хранения его в.

    Значение

    - 66668

    Описание

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

    Доступный в OS X v10.8 и позже.

  • Во время вызова к AudioQueueReset, AudioQueueStop, или AudioQueueDispose функции, система не позволяет Вам ставить в очередь буферы.

    Значение

    - 66632

    Описание

    Во время вызова к AudioQueueReset, AudioQueueStop, или AudioQueueDispose функции, система не позволяет Вам ставить в очередь буферы.

    Доступный в OS X v10.6 и позже.

  • Работа требует, чтобы аудио-очередь была в режиме офлайн, но это не, или наоборот.

    Значение

    - 66626

    Описание

    Работа требует, чтобы аудио-очередь была в режиме офлайн, но это не, или наоборот.

    Чтобы использовать режим офлайн или возвратиться к нормальному режиму, используйте AudioQueueSetOfflineRenderFormat функция.

    Доступный в OS X v10.7 и позже.

  • Формат данных воспроизведения не поддерживается (объявленный в AudioFormat.h).

    Значение

    1718449215 = ‘fmt?’

    Описание

    Формат данных воспроизведения не поддерживается (объявленный в AudioFormat.h).

    Доступный в OS X v10.3 и позже.