Ссылка служб аудио-очереди
Этот документ описывает 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Аудио-очередь, от которой Вы хотите получить значение параметра.
inParamIDID параметра, значение которого Вы хотите получить. В 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Аудио-очередь воспроизведения, на которой Вы хотите установить значение параметра.
inParamIDID параметра Вы хотите установить. В 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Аудио-очередь, от которой Вы хотите получить значение свойства.
inIDID свойства, значение которого Вы хотите получить. Посмотрите Идентификаторы Свойства Аудио-очереди.
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Аудио-очередь, на которой Вы хотите установить значение свойства.
inIDID свойства, значение которого Вы хотите установить. Посмотрите Идентификаторы Свойства Аудио-очереди.
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Аудио-очередь, имеющая значение свойства, размер которого Вы хотите получить.
inIDID значения свойства, размер которого Вы хотите получить. Посмотрите Идентификаторы Свойства Аудио-очереди.
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Аудио-очередь, которой Вы хотите присвоить обратный вызов слушателя свойства.
inIDID свойства, на изменения которого Вы хотите ответить. Посмотрите Идентификаторы Свойства Аудио-очереди.
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Аудио-очередь, из которой Вы хотите удалить обратный вызов слушателя свойства.
inIDID свойства, на изменения которого Вы больше не хотите ответить. Посмотрите Идентификаторы Свойства Аудио-очереди.
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 и позже.
См. также
AudioQueueGetCurrentTimeAudioDeviceGetCurrentTime -
Получает время начала, для аудио устройства, которое является самым близким к требуемому времени начала.
Объявление
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Аудио-очередь записи или воспроизведения, вызвавшая обратный вызов.
inIDID свойства, изменения значения которого Вы хотите наблюдать.
Обсуждение
Установите этот обратный вызов в аудио-очереди путем вызова
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 = COpaquePointerObjective C
typedef struct OpaqueAudioQueue *AudioQueueRef;Обсуждение
Аудио-очередь является программным объектом, который Вы используете для записи или игры аудио в OS X. Это выполняет работу:
Соединение с аудио аппаратными средствами
Управление памятью
Использование кодеков, по мере необходимости, для сжатых форматов аудио
Посредничество записи или воспроизведения
Вы создаете, используете и избавляетесь от аудио-очередей с помощью функций, описанных в Функциях Аудио-очереди.
Оператор импорта
Objective C
@import AudioToolbox;Swift
import AudioToolboxДоступность
Доступный в OS X v10.5 и позже.
-
Определяет непрозрачный тип данных, представляющий объект временной шкалы аудио-очереди.
Объявление
Swift
typealias AudioQueueTimelineRef = COpaquePointerObjective 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 = UInt32Objective C
typedef UInt32 AudioQueueParameterID;Оператор импорта
Objective C
@import AudioToolbox;Swift
import AudioToolboxДоступность
Доступный в OS X v10.5 и позже.
-
A
Float32значение для параметра аудио-очереди.Объявление
Swift
typealias AudioQueueParameterValue = Float32Objective C
typedef Float32 AudioQueueParameterValue;Оператор импорта
Objective C
@import AudioToolbox;Swift
import AudioToolboxДоступность
Доступный в OS X v10.5 и позже.
-
Идентификаторы для свойств аудио-очереди.
Объявление
Swift
typealias AudioQueuePropertyID = UInt32Objective 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_IsRunningkAudioQueueProperty_IsRunningЗначение является только для чтения
UInt32значение, указывающее, работает ли аудио-очередь. Ненулевое значение означает работать;0средние значения остановились. Уведомление отправляется, когда связанная аудио-очередь запускается или останавливается, который может произойти когда-то послеAudioQueueStartилиAudioQueueStopфункция вызвана.Доступный в OS X v10.5 и позже.
-
kAudioQueueDeviceProperty_SampleRatekAudioQueueDeviceProperty_SampleRateЗначение является только для чтения
Float64значение, представляющее частоту дискретизации аудио устройства, связалось с аудио-очередью.Доступный в OS X v10.5 и позже.
-
kAudioQueueDeviceProperty_NumberChannelskAudioQueueDeviceProperty_NumberChannelsЗначение является только для чтения
UInt32значение, представляющее число каналов в аудио устройстве, связалось с аудио-очередью.Доступный в OS X v10.5 и позже.
-
kAudioQueueProperty_CurrentDevicekAudioQueueProperty_CurrentDeviceЗначение является чтением-записью
CFStringRefобъект, представляющий уникальный идентификатор (UID) аудио устройства, связался с аудио-очередью.Доступный в OS X v10.5 и позже.
-
kAudioQueueProperty_MagicCookiekAudioQueueProperty_MagicCookieЗначение является чтением-записью недействительный указатель на блок памяти, которую Вы устанавливаете, содержа cookie волшебства формата аудио. Если формат аудио Вы играете или записываете к, требует волшебного cookie, необходимо установить значение для этого свойства прежде, чем ставить в очередь любые буферы.
Доступный в OS X v10.5 и позже.
-
kAudioQueueProperty_MaximumOutputPacketSizekAudioQueueProperty_MaximumOutputPacketSizeЗначение является только для чтения
UInt32значение, которое является размером, в байтах, самого большого единственного пакета данных в выходном формате. Прежде всего полезный при кодировании VBR сжал данные.Доступный в OS X v10.6 и позже.
-
kAudioQueueProperty_StreamDescriptionkAudioQueueProperty_StreamDescriptionЗначение является только для чтения
AudioStreamBasicDescriptionструктура, указывая формат данных аудио-очереди. Прежде всего полезный для получения полного ASBD при записи, в случаях, где Вы первоначально указываете частоту дискретизации0.Доступный в OS X v10.6 и позже.
-
kAudioQueueProperty_ChannelLayoutkAudioQueueProperty_ChannelLayoutЗначение является чтением-записью
AudioChannelLayoutструктура, описывающая расположение канала аудио-очереди. Число каналов в расположении должно соответствовать число каналов в формате аудио. Это свойство обычно не используется в случае одного или двух аудио канала. Больше чем для двух каналов (такой как в случае 5,1 объемного звука), Вы, возможно, должны указать расположение канала для указания порядка канала, такой, как оставлено, затем центрируетесь, затем право.Доступный в OS X v10.5 и позже.
-
kAudioQueueProperty_EnableLevelMeteringkAudioQueueProperty_EnableLevelMeteringЗначение является чтением-записью
UInt32значение, указывающее, включено ли измерение уровня звука для аудио-очереди.0= измерение прочь,1= измерение на.Доступный в OS X v10.5 и позже.
-
kAudioQueueProperty_CurrentLevelMeterkAudioQueueProperty_CurrentLevelMeterЗначение является массивом только для чтения
AudioQueueLevelMeterStateструктуры, один элемент матрицы на звуковой канал. Задействованные значения в структуре находятся в диапазоне0(для тишины) к1(указание максимального уровня).Доступный в OS X v10.5 и позже.
-
kAudioQueueProperty_CurrentLevelMeterDBkAudioQueueProperty_CurrentLevelMeterDBЗначение является массивом только для чтения
AudioQueueLevelMeterStateструктуры, один элемент матрицы на звуковой канал. Задействованные значения в структуре находятся в децибелах.Доступный в OS X v10.5 и позже.
-
kAudioQueueProperty_DecodeBufferSizeFrameskAudioQueueProperty_DecodeBufferSizeFramesЗначение является чтением-записью
UInt32значение, которое является размером буфера, в который воспроизведение (вывод) аудио-очередь декодирует буферы. Более крупный буфер обеспечивает больше надежности и лучшей долгосрочной производительности за счет памяти и уменьшенной скорости отклика в некоторых ситуациях.Доступный в OS X v10.6 и позже.
-
kAudioQueueProperty_ConverterErrorkAudioQueueProperty_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_VolumekAudioQueueParam_VolumeГромкость воспроизведения для аудио-очереди, в пределах от
0.0через1.0в линейной шкале. Значение0.0указывает тишину; значение1.0(значение по умолчанию), указывает полный объем для экземпляра аудио-очереди.Используйте это свойство для управления объемом аудио-очереди относительно другого аудиовыхода.
Для обеспечения UI в iOS для корректировки системного объема воспроизведения аудио используйте
MPVolumeViewкласс, обеспечивающий управление воспроизведением носителей, которое ожидают пользователи iOS и чье появление можно настроить.Доступный в OS X v10.5 и позже.
-
kAudioQueueParam_PlayRatekAudioQueueParam_PlayRateСкорость воспроизведения для аудио-очереди, в диапазоне
0.5через2.0. Значение1.0(значение по умолчанию), указывает, что аудио-очередь должна играть при ее нормальном темпе.Этот параметр применим, только если включен процессор подачи времени.
Доступный в OS X v10.6 и позже.
-
kAudioQueueParam_PitchkAudioQueueParam_PitchЧисло центов к сдвигу подачи воспроизведение аудио-очереди, в диапазоне
-2400через2400центы (где 1 200 центов соответствует одной музыкальной октаве.)Этот параметр применим, только если включен процессор времени/подачи.
Доступный в OS X v10.6 и позже.
-
kAudioQueueParam_VolumeRampTimekAudioQueueParam_VolumeRampTimeЧисло секунд, за которые сползается изменение объема.
Например, для исчезновения от единичного усиления вниз для глушения в течение 1 секунды установите этот параметр на
1и затем наборkAudioQueueParam_Volumeпараметр к0.Доступный в OS X v10.7 и позже.
-
kAudioQueueParam_PankAudioQueueParam_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 и позже.
