Ссылка служб аудио-очереди
Этот документ описывает Audio Queue Services, интерфейс программирования C в Аудио платформе Панели инструментов, которая является частью Core Audio.
Аудио-очередь является программным объектом, который Вы используете для записи или игры аудио. Аудио-очередь выполняет работу:
Соединение с аудио аппаратными средствами
Управление памятью
Использование кодеков, по мере необходимости, для сжатых форматов аудио
Посредничество воспроизведения или записи
Audio Queue Services позволяет Вам записать и играть аудио в линейном PCM в сжатых форматах (таких как Apple Lossless и AAC), и в других форматах, для которых пользователи установили кодеки. Audio Queue Services также поддерживает запланированное воспроизведение и синхронизацию многократных аудио-очередей и синхронизацию аудио с видео.
-
Начинает играть или записывать аудио.
Объявление
Swift
func AudioQueueStart(_
inAQ
: AudioQueueRef, _inDeviceStartTime
: UnsafePointer<AudioTimeStamp>) -> OSStatusObjective 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>) -> OSStatusObjective C
OSStatus AudioQueuePrime ( AudioQueueRef inAQ, UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared );
Параметры
inAQ
Аудио-очередь, чтобы быть запущенным.
inNumberOfFramesToPrepare
Число кадров для декодирования перед возвратом. Передача
0
декодировать все ставившие в очередь буферы.outNumberOfFramesPrepared
На выводе, числе кадров, фактически декодируемых и подготовленных к воспроизведению. Передача
NULL
на вводе, если Вы Вы не интересуетесь этой информацией.Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Обсуждение
Эта функция декодирует ставившие в очередь буферы в подготовке к воспроизведению. Когда, по крайней мере, число кадров аудиосэмпла указало в, это возвращается
inNumberOfFramesToPrepare
если Вы передаете, декодируются и готовы играть, или (0
дляinNumberOfFramesToPrepare
параметр), когда декодируются все ставившие в очередь буферы.Для создания буфера аудиоданных готовым играть использовать
AudioQueuePrime
следующим образом:Вызвать
AudioQueueEnqueueBuffer
.Вызвать
AudioQueuePrime
.Вызвать
AudioQueueStart
.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
-
Сбрасывает состояние декодера аудио-очереди.
Объявление
Swift
func AudioQueueFlush(_
inAQ
: AudioQueueRef) -> OSStatusObjective 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) -> OSStatusObjective 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) -> OSStatusObjective C
OSStatus AudioQueuePause ( AudioQueueRef inAQ );
Параметры
inAQ
Аудио-очередь для приостановки.
Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Обсуждение
Приостановка аудио-очереди не влияет на буферы или сбрасывать аудио-очередь. Для возобновления воспроизведения или записи вызвать
AudioQueueStart
.Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Сбрасывает аудио-очередь.
Объявление
Swift
func AudioQueueReset(_
inAQ
: AudioQueueRef) -> OSStatusObjective 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>) -> OSStatusObjective 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 и позже.
См. также
-
Создает новый объект аудио-очереди записи.
Объявление
Swift
func AudioQueueNewInput(_
inFormat
: UnsafePointer<AudioStreamBasicDescription>, _inCallbackProc
: AudioQueueInputCallback, _inUserData
: UnsafeMutablePointer<Void>, _inCallbackRunLoop
: CFRunLoop!, _inCallbackRunLoopMode
: CFString!, _inFlags
: UInt32, _outAQ
: UnsafeMutablePointer<AudioQueueRef>) -> OSStatusObjective 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) -> OSStatusObjective C
OSStatus AudioQueueDispose ( AudioQueueRef inAQ, Boolean inImmediate );
Параметры
inAQ
Аудио-очередь Вы хотите избавиться.
inImmediate
Если Вы передаете
true
, от аудио-очереди сразу избавляются (т.е. синхронно). Если Вы передаетеfalse
, размещение не имеет место, пока все ставившие в очередь буферы не обрабатываются (т.е. асинхронно).Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Обсуждение
Избавление от аудио-очереди также избавляется от своих ресурсов, включая ее буферы. После того, как Вы вызовете эту функцию, Вы больше не можете взаимодействовать с аудио-очередью. Кроме того, аудио-очередь больше не вызывает обратных вызовов.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Спрашивает объект аудио-очереди выделить буфер аудио-очереди.
Объявление
Swift
func AudioQueueAllocateBuffer(_
inAQ
: AudioQueueRef, _inBufferByteSize
: UInt32, _outBuffer
: UnsafeMutablePointer<AudioQueueBufferRef>) -> OSStatusObjective 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 и позже.
-
AudioQueueAllocateBufferWithPacketDescriptions (_: _: _: _:) AudioQueueAllocateBufferWithPacketDescriptions
Спрашивает объект аудио-очереди выделить буфер аудио-очереди с пространством для описаний пакета.
Объявление
Swift
func AudioQueueAllocateBufferWithPacketDescriptions(_
inAQ
: AudioQueueRef, _inBufferByteSize
: UInt32, _inNumberPacketDescriptions
: UInt32, _outBuffer
: UnsafeMutablePointer<AudioQueueBufferRef>) -> OSStatusObjective 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) -> OSStatusObjective 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>) -> OSStatusObjective 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 и позже.
См. также
-
AudioQueueEnqueueBufferWithParameters (_: _: _: _: _: _: _: _: _: _:) AudioQueueEnqueueBufferWithParameters
Добавляет буфер к буферной очереди объекта аудио-очереди воспроизведения, указывая время начала и другие настройки.
Объявление
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>) -> OSStatusObjective 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 и позже.
См. также
-
Получает значение параметра аудио-очереди.
Объявление
Swift
func AudioQueueGetParameter(_
inAQ
: AudioQueueRef, _inParamID
: AudioQueueParameterID, _outValue
: UnsafeMutablePointer<AudioQueueParameterValue>) -> OSStatusObjective 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 и позже.
См. также
-
Устанавливает значение параметра аудио-очереди воспроизведения.
Объявление
Swift
func AudioQueueSetParameter(_
inAQ
: AudioQueueRef, _inParamID
: AudioQueueParameterID, _inValue
: AudioQueueParameterValue) -> OSStatusObjective 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 AudioQueueGetProperty(_
inAQ
: AudioQueueRef, _inID
: AudioQueuePropertyID, _outData
: UnsafeMutablePointer<Void>, _ioDataSize
: UnsafeMutablePointer<UInt32>) -> OSStatusObjective C
OSStatus AudioQueueGetProperty ( AudioQueueRef inAQ, AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize );
Параметры
inAQ
Аудио-очередь, от которой Вы хотите получить значение свойства.
inID
ID свойства, значение которого Вы хотите получить. Посмотрите Идентификаторы Свойства Аудио-очереди.
outData
На выводе, желаемом значении свойства.
ioDataSize
На вводе максимальных байтах пространства вызывающая сторона ожидает получать. На выводе, фактическом размере данных значения свойства.
Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Обсуждение
Прежде, чем вызвать эту функцию, можно использовать
AudioQueueGetPropertySize
функция для определения размера, в байтах, значения указанного свойства. Некоторые свойства имеют значения определенного размера, как описано в Идентификаторах Свойства Аудио-очереди.Специальные замечания
Некоторые значения свойств Core Audio являются типами C, и другие являются Базовыми объектами Основы.
Если Вы вызываете эту функцию для получения значения, которое является Базовым объектом Основы, то эта функция — несмотря на использование «Get» на его имя — копирует объект. Вы ответственны за выпуск объекта, как описано в Создать Правиле в Руководстве по программированию управления памятью для Базовой Основы.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
-
Устанавливает значение свойства аудио-очереди.
Объявление
Swift
func AudioQueueSetProperty(_
inAQ
: AudioQueueRef, _inID
: AudioQueuePropertyID, _inData
: UnsafePointer<Void>, _inDataSize
: UInt32) -> OSStatusObjective C
OSStatus AudioQueueSetProperty ( AudioQueueRef inAQ, AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize );
Параметры
inAQ
Аудио-очередь, на которой Вы хотите установить значение свойства.
inID
ID свойства, значение которого Вы хотите установить. Посмотрите Идентификаторы Свойства Аудио-очереди.
inData
Значение свойства для установки.
inDataSize
Размер данных свойства.
Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Получает размер значения свойства аудио-очереди.
Объявление
Swift
func AudioQueueGetPropertySize(_
inAQ
: AudioQueueRef, _inID
: AudioQueuePropertyID, _outDataSize
: UnsafeMutablePointer<UInt32>) -> OSStatusObjective C
OSStatus AudioQueueGetPropertySize ( AudioQueueRef inAQ, AudioQueuePropertyID inID, UInt32 *outDataSize );
Параметры
inAQ
Аудио-очередь, имеющая значение свойства, размер которого Вы хотите получить.
inID
ID значения свойства, размер которого Вы хотите получить. Посмотрите Идентификаторы Свойства Аудио-очереди.
outDataSize
На выводе, размере требуемого значения свойства.
Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Добавляет обратный вызов слушателя свойства к аудио-очереди.
Объявление
Swift
func AudioQueueAddPropertyListener(_
inAQ
: AudioQueueRef, _inID
: AudioQueuePropertyID, _inProc
: AudioQueuePropertyListenerProc, _inUserData
: UnsafeMutablePointer<Void>) -> OSStatusObjective C
OSStatus AudioQueueAddPropertyListener ( AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData );
Параметры
inAQ
Аудио-очередь, которой Вы хотите присвоить обратный вызов слушателя свойства.
inID
ID свойства, на изменения которого Вы хотите ответить. Посмотрите Идентификаторы Свойства Аудио-очереди.
inProc
Обратный вызов, который будет вызван, когда изменяется значение свойства.
inUserData
Пользовательские данные для обратного вызова слушателя свойства.
Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Обсуждение
Используйте эту функцию, чтобы позволить Вашему приложению реагировать на изменения значения свойства в аудио-очереди. Например, скажите, что пользовательский интерфейс Вашего приложения имеет кнопку, действующую как тумблер Игры/Остановки. Когда аудиофайл закончил играть, остановки аудио-очереди и значение
kAudioQueueProperty_IsRunning
свойство изменяется отtrue
кfalse
. Можно использовать обратный вызов слушателя свойства для обновления текста кнопки соответственно.Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Удаляет обратный вызов слушателя свойства из аудио-очереди.
Объявление
Swift
func AudioQueueRemovePropertyListener(_
inAQ
: AudioQueueRef, _inID
: AudioQueuePropertyID, _inProc
: AudioQueuePropertyListenerProc, _inUserData
: UnsafeMutablePointer<Void>) -> OSStatusObjective C
OSStatus AudioQueueRemovePropertyListener ( AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData );
Параметры
inAQ
Аудио-очередь, из которой Вы хотите удалить обратный вызов слушателя свойства.
inID
ID свойства, на изменения которого Вы больше не хотите ответить. Посмотрите Идентификаторы Свойства Аудио-очереди.
inProc
Обратный вызов, который будет удален.
inUserData
Те же пользовательские данные для обратного вызова слушателя свойства, который Вы передали при вызове
AudioQueueAddPropertyListener
.Возвращаемое значение
Код результата. Посмотрите Коды Результата Аудио-очереди.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Создает объект временной шкалы для аудио-очереди.
Объявление
Swift
func AudioQueueCreateTimeline(_
inAQ
: AudioQueueRef, _outTimeLine
: UnsafeMutablePointer<AudioQueueTimelineRef>) -> OSStatusObjective 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) -> OSStatusObjective 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>) -> OSStatusObjective 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) -> OSStatusObjective 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>) -> OSStatusObjective 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>) -> OSStatusObjective 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>) -> OSStatusObjective 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 и позже.
См. также
-
Аудио экспорта к буферу, вместо к устройству, с помощью аудио-очереди воспроизведения.
Объявление
Swift
func AudioQueueOfflineRender(_
inAQ
: AudioQueueRef, _inTimestamp
: UnsafePointer<AudioTimeStamp>, _ioBuffer
: AudioQueueBufferRef, _inRequestedFrames
: UInt32) -> OSStatusObjective 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
параметр. Как правило, Вы пишете этот обратный вызов в:Заполните недавно доступный буфер следующим набором аудиоданных от файла или другой буфер.
Повторно ставьте в очередь буфер для воспроизведения. Чтобы повторно ставить в очередь буфер, используйте
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
, то аудио закончило играть. Выполните эти шаги:Определите эту функцию обратного вызова слушателя свойства для прислушиваний к изменениям в
kAudioQueueProperty_IsRunning
свойство.Установите этот обратный вызов, с помощью
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 }
Поля
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 и позже.
Обсуждение
Получить уведомление, которое изменило определенное свойство аудио-очереди:
Определите обратный вызов слушателя свойства, сославшись на желаемое свойство ID аудио-очереди. Базируйте обратный вызов на
AudioQueuePropertyListenerProc
объявление функции обратного вызова.Присвойте обратный вызов аудио-очереди с помощью
AudioQueueAddPropertyListener
функция.Когда Вы получите измененное на свойство уведомление, вызовите
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 и позже.