AUDCLNT_STREAMFLAGS_XXX 常量

指定客户端可以在流初始化期间分配给音频流的特征。

常量/值 说明
AUDCLNT_STREAMFLAGS_CROSSPROCESS
0x00010000
音频流将是跨进程音频会话的成员。 有关详细信息,请参阅“备注”。
AUDCLNT_STREAMFLAGS_LOOPBACK
0x00020000
音频流将在环回模式下运行。 有关详细信息,请参阅“备注”。
AUDCLNT_STREAMFLAGS_EVENTCALLBACK
0x00040000
客户端处理音频缓冲区将由事件驱动。 有关详细信息,请参阅“备注”。
AUDCLNT_STREAMFLAGS_NOPERSIST
0x00080000
音频会话的音量和静音设置在应用程序重启后不会保留。 有关详细信息,请参阅“备注”。
AUDCLNT_STREAMFLAGS_RATEADJUST
0x00100000
此常量是 Windows 7 中的新增功能。 流的采样率调整为应用程序指定的速率。 有关详细信息,请参阅“备注”。
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM
0x80000000
根据需要插入通道矩阵器和采样率转换器,以在提供给 IAudioClient::Initialize 的未压缩格式与音频引擎混合格式之间进行转换。
AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY
0x08000000
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM 一起使用时,将使用质量优于默认转换但性能成本较高的采样率转换器。 如果音频最终旨在由人类听到,而不是其他场景(如抽水静音或填充计量),则应使用此选项。

备注

IAudioClient::Initialize 方法和 DIRECTX_AUDIO_ACTIVATION_PARAMS 结构使用 AUDCLNT_STREAMFLAGS_XXX 常量。

AUDCLNT_STREAMFLAGS_CROSSPROCESS标志指示流的音频会话是跨进程会话。 跨进程会话可以接受来自多个进程的流。 如果两个单独进程中的两个应用程序使用相同的会话 GUID 调用 IAudioClient::Initialize ,并且两个应用程序都设置了AUDCLNT_SHAREMODE_CROSSPROCESS标志,则音频引擎会将其流分配给同一个跨进程会话。 此标志替代默认行为,即将流分配给特定于进程的会话,而不是跨进程会话。 AUDCLNT_STREAMFLAGS_CROSSPROCESS标志位与独占模式不兼容。 有关跨进程会话的详细信息,请参阅 音频会话

AUDCLNT_STREAMFLAGS_LOOPBACK标志启用环回录制。 在环回录制中,音频引擎将呈现终结点设备正在播放的音频流复制到音频终结点缓冲区中,以便 WASAPI 客户端可以捕获流。 如果设置了此标志, IAudioClient::Initialize 方法将尝试在呈现设备上打开捕获缓冲区。 此标志仅对呈现设备有效,并且仅当 Initialize 调用将 ShareMode 参数设置为AUDCLNT_SHAREMODE_SHARED时有效。 否则, Initialize 调用将失败。 如果调用成功,客户端可以调用 IAudioClient::GetService 方法来获取呈现设备上的 IAudioCaptureClient 接口。 有关详细信息,请参阅 环回录制

AUDCLNT_STREAMFLAGS_EVENTCALLBACK 标志启用事件驱动的缓冲。 如果客户端在调用 初始化流的 IAudioClient::Initialize 中设置了此标志,则客户端随后必须调用 IAudioClient::SetEventHandle 方法,以便为流提供事件句柄。 流启动后,音频引擎将向事件句柄发出信号,以便在每次缓冲区准备好供客户端处理时通知客户端。 WASAPI 支持对呈现缓冲区和捕获缓冲区使用事件驱动的缓冲。 共享模式流和独占模式流都可以使用事件驱动的缓冲。 有关使用 AUDCLNT_STREAMFLAGS_EVENTCALLBACK 标志的代码示例,请参阅 独占模式流

对于包含呈现流的会话,AUDCLNT_STREAMFLAGS_NOPERSIST标志禁用卷的持久性和静音设置。 默认情况下,呈现会话的音量级别和静音状态在应用程序重启期间是永久性的。 捕获会话的卷级别和静音状态从不持久。 有关会话音量和静音设置的持久性的详细信息,请参阅 音频会话

AUDCLNT_STREAMFLAGS_RATEADJUST标志使应用程序能够获取对 IAudioClockAdjustment 接口的引用,该接口用于设置流的采样率。 若要获取指向此交互的指针,应用程序必须使用此标志初始化音频客户端,然后通过指定IID_IAudioClockAdjustment标识符调用 IAudioClient::GetService。 若要设置新的采样率,请调用 IAudioClockAdjustment::SetSampleRate。 此标志仅对呈现设备有效。 否则, GetService 调用将失败,错误代码AUDCLNT_E_WRONG_ENDPOINT_TYPE。 应用程序还必须将 ShareMode 参数设置为在 Initialize 调用期间AUDCLNT_SHAREMODE_SHARED。 如果音频客户端不处于共享模式,SetSampleRate 将失败。

要求

要求
最低受支持的客户端
Windows Vista [桌面应用 |UWP 应用]
最低受支持的服务器
Windows Server 2008 [桌面应用 |UWP 应用]
标头
Audiosessiontypes.h

另请参阅

核心音频常量

IAudioCaptureClient 接口

IAudioClient::GetService

IAudioClient::Initialize

IAudioClient::SetEventHandle