IAudioMeterInformation::GetChannelsPeakValues 方法 (endpointvolume.h)

GetChannelsPeakValues 方法获取音频流中所有声道的峰值样本值。

语法

HRESULT GetChannelsPeakValues(
  [in]  UINT32 u32ChannelCount,
  [out] float  *afPeakValues
);

参数

[in] u32ChannelCount

通道计数。 此参数还指定 afPeakValues 数组中的元素数。 如果指定的计数与流中的通道数不匹配,该方法将返回错误代码E_INVALIDARG。

[out] afPeakValues

指向峰值样本值数组的指针。 方法将通道的峰值写入数组。 数组包含流中每个通道的一个元素。 峰值是规范化范围为 0.0 到 1.0 的数字。

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
E_INVALIDARG
参数 u32ChannelCount 不等于音频流中的声道数。
E_POINTER
参数 afPeakValuesNULL

注解

此方法检索流中通道的峰值样本值。 每个通道的峰值记录在一个设备周期内,并在后续设备期间可用。 因此,此方法始终检索在上一个设备期间记录的峰值。 若要获取设备周期,请调用 IAudioClient::GetDevicePeriod 方法。

参数 afPeakValues 指向调用方分配的 float 数组。 如果流包含 n 个通道,则通道编号为 0 到 n – 1。 方法存储数组元素中数组索引与通道号匹配的每个通道的峰值。 若要获取由峰值计量监视的音频流中的声道数,请调用 IAudioMeterInformation::GetMeteringChannelCount 方法。

要求

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

另请参阅

IAudioClient::GetDevicePeriod

IAudioMeterInformation 接口

IAudioMeterInformation::GetMeteringChannelCount