AudioQueue 类

定义

输入和输出音频队列的基类。

public abstract class AudioQueue : IDisposable
type AudioQueue = class
    interface IDisposable
继承
AudioQueue
派生
实现

注解

AudioQueues 可用于将系统输入设备的音频录制到流中,以及播放音频。 它们负责在录制或播放时解码压缩的音频时对音频进行编码,并在适当情况下直接与音频硬件交互和解码硬件。

AudioQueue 是用于录制音频和OutputAudioQueue用于播放音频的 的基类InputAudioQueue。 此类提供用于启动、启动、停止、暂停队列以及音量控制、资源管理和事件通知的服务。

使用 AudioQueues 时,必须分配用于播放或录制的缓冲区。 使用 AllocateBuffer(Int32, AudioQueueBuffer*) 方法或 来 AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr) 分配它们,并使用 FreeBuffer(IntPtr) 释放它们。 在周围保留一组缓冲区,基础硬件可以使用这些缓冲区来播放音频或录制内容。 使用缓冲区时,会调用通知回调。 在 OutputAudioQueue 的情况下,连接到 OutputCompleted 事件以在缓冲区完全播放时收到通知;在 InputAudioQueue 中,使用 InputCompleted 事件在录制已充分利用缓冲区时收到通知。

除非另行指定,否则将在 AudioQueue 线程上调用用于处理已填充音频缓冲区或填充音频缓冲区的回调。 可以通过提供要用于处理队列中的事件的 CFRunLoop 实例来更改此情况。

处理输入或输出队列时,可能需要侦听队列在处理期间引发的一些属性更改, (请参阅 E:AudioToolBox.AudioQueueProperty ,获取可以) 收听的事件列表。 为此,请使用 AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) 方法添加侦听器,并使用 RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) 方法删除侦听器。

可以查看 StreamingAudio ,了解如何使用 AudioBuffers。

各种 AudioQueue 属性公开为高级 C# 属性。 除了高级属性之外,如果 Apple 引入了以前未绑定的新属性,或者需要更精细的控制,则会公开 AudioQueue 属性系统的低级别接口。 低级别接口由 GetProperty 和 SetProperty 系列方法提供。

字段

gch

输入和输出音频队列的基类。

handle

输入和输出音频队列的基类。

属性

AudioStreamDescription

输入和输出音频队列的基类。

AudioStreamPacketDescription
已过时.

音频队列的 AudioStreamBasicDescription。

ChannelLayout

音频队列通道布局。

ConverterError

包含音频队列的编码或解码过程中生成的最新错误。

CurrentDevice

与此音频队列关联的设备的唯一标识符。

CurrentLevelMeter

当前级别仪表,每个通道在零 (最小) 到一个 (最大) 。

CurrentLevelMeterDB

当前级别计量器,每个通道一个,以分贝为单位。

CurrentTime

返回硬件设备的当前时间。

DecodeBufferSizeFrames

输入和输出音频队列的基类。

DeviceChannels

输入和输出音频队列的基类。

EnableLevelMetering

对音频队列启用级别计量。

Handle

处理指向非托管对象表示形式的 (指针) 。

HardwareCodecPolicy

输入和输出音频队列的基类。

IsRunning

输入和输出音频队列的基类。

MagicCookie

某些格式所需的音频元数据。

MaximumOutputPacketSize

输入和输出音频队列的基类。

Pan

输入和输出音频队列的基类。

SampleRate

输入和输出音频队列的基类。

Volume

VolumeRampTime

输入和输出音频队列的基类。

方法

AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

使用此方法跟踪对音频队列属性的更改。

AllocateBuffer(Int32, AudioQueueBuffer*)

分配与此 AudioQueue 关联的音频缓冲区

AllocateBuffer(Int32, IntPtr)

分配与此 AudioQueue 关联的音频缓冲区,用于固定比特率缓冲区。

AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr)

为可变比特率缓冲区分配音频队列对象。

CreateProcessingTap(AudioQueueProcessingTapDelegate, AudioQueueProcessingTapFlags, AudioQueueStatus)

在 AudioQueue 中创建处理点击。

CreateTimeline()

创建一个时间线对象,该对象可用于跟踪音频队列的音频中的不连续。

Dispose()

释放 AudioQueue 对象使用的资源。

Dispose(Boolean)

释放 AudioQueue 对象使用的资源。

EnqueueBuffer(AudioQueueBuffer*, AudioStreamPacketDescription[])

将缓冲区添加到音频队列的缓冲区队列。

EnqueueBuffer(AudioQueueBuffer*, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp)

将应尽快播放的缓冲区添加到播放音频队列的缓冲区队列。

EnqueueBuffer(AudioQueueBuffer*, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp, AudioTimeStamp)

将缓冲区添加到播放音频队列的缓冲区队列,指定开始时间和参数。

EnqueueBuffer(IntPtr, AudioStreamPacketDescription[])

输入和输出音频队列的基类。

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[])

将缓冲区添加到音频队列的缓冲区队列。

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp)

将应尽快播放的缓冲区添加到播放音频队列的缓冲区队列。

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp, AudioTimeStamp)

将缓冲区添加到播放音频队列的缓冲区队列,指定开始时间和参数。

FillAudioData(IntPtr, Int32, IntPtr, Int32, nint)

将 source+sourceOffset 在指定偏移量指向的位置包含的原始音频数据复制到 AudioQueueBuffer 中。

Finalize()

AudioQueue 对象的终结器

Flush()

输入和输出音频队列的基类。

FreeBuffer(IntPtr)

释放 AudioQueue 缓冲区。

GetCurrentTime(AudioQueueTimeline, AudioTimeStamp, Boolean)

返回音频队列的当前时间。

GetNearestStartTime(AudioTimeStamp)

输入和输出音频队列的基类。

GetProperty(AudioQueueProperty, Int32)

用于提取 AudioQueue 属性的低级别 API。

GetProperty(AudioQueueProperty, Int32, IntPtr)

用于提取 AudioQueue 属性的低级别 API。

GetProperty<T>(AudioQueueProperty)

用于提取 AudioQueue 属性的低级别 API。

Pause()

输入和输出音频队列的基类。

Prime(Int32, Int32)

用于准备要播放的音频缓冲区,并确保有数据可供音频硬件播放。

QueueDispose()

输入和输出音频队列的基类。

RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

输入和输出音频队列的基类。

Reset()

输入和输出音频队列的基类。

SetChannelAssignments(AudioQueueChannelAssignment[])

输入和输出音频队列的基类。

SetProperty(AudioQueueProperty, Int32, IntPtr)

输入和输出音频队列的基类。

Start()

启动音频队列。

Start(AudioTimeStamp)

输入和输出音频队列的基类。

Stop(Boolean)

停止 AudioQueue。

TranslateTime(AudioTimeStamp)

输入和输出音频队列的基类。

适用于

另请参阅