音频设备 DDI 参考

音频设备 DDI 参考技术概述。

若要开发音频设备 DDI 参考,需要以下标头:

有关此技术的编程指南,请参阅:

枚举

 
APO_FLAG

APO_FLAG 枚举定义常量,这些常量由音频处理对象 (APO) 用作标志。
APO_LOG_LEVEL

指定使用 IAudioProcessingObjectLoggingService::ApoLog 记录的 APO 事件的级别。
APO_NOTIFICATION_TYPE

指定APO_NOTIFICATION的类型。
APO_REFERENCE_STREAM_PROPERTIES

指定 IApoAcousticEchoCancellation2::GetDesiredReferenceStreamProperties 回调方法的环回流属性。
AUDIO_SYSTEMEFFECT_STATE

指定系统效果音频处理对象的状态 (sAPO) 音频效果。
DEVICE_ORIENTATION_TYPE

指定APO_NOTIFICATION_TYPE_DEVICE_ORIENTATION类型的通知的设备方向值。
KSPROPERTY_AUDIOEFFECTSDISCOVERY

KSPROPERTY_AUDIOEFFECTSDISCOVERY枚举定义了一个常量,该常量由音频处理对象列表 (ASO) 使用。

函数

 
AcceptInput

在其辅助输入之一上向 APO 提供输入。
AddAuxiliaryInput

将辅助输入添加到 APO,并提供初始化参数。
AERT_Allocate

AERT_Allocate实用工具函数分配并锁定一段内存,供音频处理对象使用。
AERT_Free

AERT_Free 实用工具函数释放 (释放AERT_Allocate函数锁定的) 内存,供音频处理对象用来处理音频数据。
ApoLog

记录 APO 事件。
APOProcess

APOProcess 方法会导致 APO 进行处理传递。
CalcInputFrames

CalcInputFrames 方法返回 APO 生成给定数量的输出帧所需的输入帧数。
CalcOutputFrames

CalcOutputFrames 方法返回 APO 为给定数量的输入帧所需的输出帧数。
提交

进行更改后,此方法将保存更改。
CreateAudioMediaType

CreateAudioMediaType 函数使用调用方指定的格式来创建描述音频格式的媒体类型对象。
CreateAudioMediaTypeFromUncompressedAudioFormat

CreateAudioMediaTypeFromUncompressedAudioFormat 函数使用 UNCOMPRESSEDAUDIOFORMAT 结构中提供的信息来创建描述音频格式的媒体类型对象。
GetApoNotificationRegistrationInfo

由系统调用,以允许客户端注册以接收 APO 终结点和系统效果通知的通知回调。
GetApoNotificationRegistrationInfo2

由系统调用,以允许客户端注册以接收 APO 终结点和系统效果通知的通知回调。 此方法添加一个参数,该参数可用于确定当前设备上运行的 Windows 版本支持的通知类型。
GetAt

从项的属性数组中获取属性键。
GetAudioFormat

GetAudioFormat 方法返回音频数据格式的 WAVEFORMATEX 结构。
GetControllableSystemEffectsList

由系统效果音频处理对象实现 (sAPO) 音频效果,以允许调用方获取当前效果列表。
GetCount

此方法返回附加到文件的属性数的计数。
GetDesiredReferenceStreamProperties

如果环回流在关联的音频终结点上受支持,则请求一组属性。
GetEffectsList

GetEffectsList 方法用于检索当前处于活动状态的音频处理效果列表,并在列表更改时存储要发出信号的事件。
GetFormat

GetFormat 方法检索自定义格式的 IAudioMediaType 表示形式。
GetFormatCount

GetFormatCount 方法检索系统效果音频处理对象 (sAPO) 支持的自定义格式数。
GetFormatRepresentation

GetFormatRepresentation 方法检索自定义格式的字符串表示形式,以便它可以显示在用户界面上。
GetInputChannelCount

GetInputChannelCount 返回此 APO 的每帧样本) (输入通道计数。
GetLatency

GetLatency 方法返回此 APO 的延迟。 延迟是指帧遍历 APO 的处理过程所花费的时间量。
GetPreferredInputFormat

回调函数,它允许 ADO 为提供的输出格式指定首选输入格式。
GetPreferredOutputFormat

回调函数,它允许 ADO 为提供的输入格式指定首选输出格式。
GetRealTimeWorkQueue

获取 APO 可用于计划需要以实时优先级运行的任务的工作队列的 ID。
GetRegistrationProperties

GetRegistrationProperties 返回音频处理对象的注册属性 (APO) 。
GetUncompressedAudioFormat

IAudioMediaType::GetUncompressedAudioFormat 返回有关音频数据格式的信息。
GetValue

此方法检索特定属性的数据。
HandleNotification

由系统调用,以通知客户端 APO 终结点或系统效果的更改。
初始化

Initialize 方法初始化 APO 并支持长度可变的数据。
IsCompressedFormat

IsCompressedFormat 方法确定音频数据格式是否为压缩格式。
IsEqual

IsEqual 方法比较两种媒体类型,并确定它们是否相同。
IsInputFormatSupported

验证 APO 是否支持特定的辅助输入格式。
IsInputFormatSupported

此方法与 Windows Vista 音频引擎协商,以建立音频数据流的数据格式。
IsOutputFormatSupported

IsOutputFormatSupported 方法用于验证是否支持特定的输出格式。
LockForProcess

LockForProcess 方法用于验证 APO 是否已锁定并准备好处理数据。
RemoveAuxiliaryInput

从 APO 中删除辅助输入。
重置

Reset 方法将 APO 重置为其原始状态。 此方法不会导致附加到 APO 的输入或输出的连接对象发生任何更改。
SetAudioDeviceModulesManager

由系统调用,用于将 IAudioDeviceModulesManager 的实例传递到实现 IAudioDeviceModulesClient 接口 (ADO) 音频处理对象。
SetAudioSystemEffectState

由系统效果音频处理对象实现 (sAPO) 音频效果,以允许调用方设置效果的状态。
SetValue

此方法设置属性值,或者替换或删除现有值。
UnlockForProcess

UnlockForProcess 方法释放 LockForProcess 方法对 APO 施加的锁。

接口

 
IApoAcousticEchoCancellation

此接口由 ADO 实现,用于 (AEC) 方案启用回声消除。
IApoAcousticEchoCancellation2

扩展 IAcousticEchoCancellation 以允许 ADO 指定引用流的所需属性。
IApoAuxiliaryInputConfiguration

提供 ADO 可以实现的方法,以便音频引擎可以添加和删除辅助输入流。
IApoAuxiliaryInputRT

实时安全接口,用于驱动 APO 的辅助输入。
IAudioDeviceModulesClient

音频处理对象 (ASO) 实现此接口以获取对 IAudioDeviceModulesManager 实例的引用。
IAudioMediaType

IAudioMediaType 接口公开的方法,这些方法允许 sAPO 获取用于与音频引擎协商的相应音频数据格式的信息。
IAudioProcessingObject

系统效果音频处理对象 (sAPOs) 通常用于实时进程线程或从实时进程线程调用。
IAudioProcessingObjectConfiguration

IAudioProcessingObjectConfiguration 接口用于配置 APO。 此接口使用其方法来锁定和解锁 APO 进行处理。
IAudioProcessingObjectLoggingService

表示 ADO 的日志记录服务。
IAudioProcessingObjectNotifications

由客户端实现,用于注册和接收 APO 终结点和系统效果通知的常见音频相关通知。
IAudioProcessingObjectNotifications2

由客户端实现,用于注册和接收 APO 终结点和系统效果通知的常见音频相关通知。 此接口添加了确定当前设备上运行的 Windows 版本上支持的通知类型的功能。
IAudioProcessingObjectPreferredFormatSupport

此接口由 ADO 实现,以使它们能够指定首选的输入或输出格式。
IAudioProcessingObjectRT

此接口可以在实时模式下运行,其方法可以称为实时处理线程。
IAudioProcessingObjectRTQueueService

表示 ADO 的实时工作队列服务。
IAudioSystemEffects

IAudioSystemEffects 接口使用从 IUnknown 继承的基本方法,并且必须实现 Initialize 方法。
IAudioSystemEffects2

IAudioSystemEffects2 接口与 Windows 8.1 一起引入,用于检索给定模式下处理对象的相关信息。
IAudioSystemEffects3

由需要将 APOInitSystemEffects3 结构传递到 IAudioProcessingObject::Initialize 方法的客户端实现。
IAudioSystemEffectsCustomFormats

Windows Vista 和更高版本的 Windows 支持 IAudioSystemEffectsCustomFormats 接口。
IPropertyStore

此接口公开用于枚举和操作属性值的方法。

结构

 
AcousticEchoCanceller_Reference_Input

包含与当前回声消除 (AEC) 配置相关的扩展信息。
APO_NOTIFICATION

表示更改 APO 终结点或系统效果的通知。
APO_NOTIFICATION_DESCRIPTOR

指定请求的 APO 通知。
APO_REG_PROPERTIES

IAudioProcessingObject::GetRegistrationProperties 使用 APO_REG_PROPERTIES 结构返回音频处理对象的注册属性, (APO) 。
APOInitBaseStruct

APOInitBaseStruct 结构是必须在 IAudioProcessingObject::Initialize 中的其他初始化数据之前的基本初始化标头。
APOInitSystemEffects

APOInitSystemEffects 结构将传递给系统效果 APO 进行初始化。
APOInitSystemEffects2

APOInitSystemEffects2 结构随 Windows 8.1 一起引入,以便向音频处理对象提供其他初始化上下文, (APO) 进行初始化。
APOInitSystemEffects3

提供 APO 初始化参数,扩展 APOInitSystemEffects2 以添加指定日志记录服务提供程序的功能。
AUDIO_ENDPOINT_PROPERTY_CHANGE_APO_NOTIFICATION_DESCRIPTOR

指定终结点属性更改 APO 通知。
AUDIO_ENDPOINT_PROPERTY_CHANGE_NOTIFICATION

表示属性更改 APO 通知。
AUDIO_ENDPOINT_VOLUME_APO_NOTIFICATION_DESCRIPTOR

指定终结点卷 APO 通知。
AUDIO_ENDPOINT_VOLUME_CHANGE_NOTIFICATION

表示音频终结点音量更改 APO 通知。
AUDIO_ENDPOINT_VOLUME_CHANGE_NOTIFICATION2

表示音频终结点音量更改 APO 通知。 这是AUDIO_ENDPOINT_VOLUME_CHANGE_NOTIFICATION的更新版本,提供有关卷更改事件的其他信息。
AUDIO_ENVIRONMENT_STATE_CHANGE_NOTIFICATION

表示音频环境更改 APO 通知。
AUDIO_MICROPHONE_BOOST_APO_NOTIFICATION_DESCRIPTOR

指定终结点麦克风提升 APO 通知。
AUDIO_MICROPHONE_BOOST_NOTIFICATION

表示音频麦克风提升 APO 通知。
AUDIO_SYSTEMEFFECT

表示 (sAPO) 音频效果的系统效果音频处理对象。
AUDIO_SYSTEMEFFECTS_PROPERTY_CHANGE_NOTIFICATION

表示系统音频效果 APO 通知。
AUDIO_VOLUME_NOTIFICATION_DATA2

表示有关卷更改通知事件的信息。 此结构由 AUDIO_ENDPOINT_VOLUME_CHANGE_NOTIFICATION2 结构使用。
KSP_PINMODE

KSP_PINMODE结构指定引脚工厂的引脚属性和支持的音频处理模式。
MDEVICECAPSEX

MDEVICECAPSEX 结构包含即插即用 (PnP) 设备驱动程序的设备功能信息。
MIDIOPENDESC

MIDIOPENDESC 结构是一种客户端填充结构,可提供有关如何打开 MIDI 设备的信息。
UNCOMPRESSEDAUDIOFORMAT

UNCOMPRESSEDAUDIOFORMAT 结构指定未压缩音频数据格式的帧速率、通道掩码和其他属性。
WAVEFORMATEX

WAVEFORMATEX 结构指定波形音频流的数据格式。