IAudioInputEndpointRT::GetInputDataPointer 方法 (audioengineendpoint.h)

GetInputDataPointer 方法获取指向音频引擎将从缓冲区读取数据的指针。

语法

void GetInputDataPointer(
  [in, out] APO_CONNECTION_PROPERTY *pConnectionProperty,
  [in, out] AE_CURRENT_POSITION     *pAeTimeStamp
);

参数

[in, out] pConnectionProperty

指向 APO_CONNECTION_PROPERTY 结构的指针。

调用方按如下所示设置成员值:

  • pBuffer 设置为 NULL
  • u32ValidFrameCount 包含检索到的数据指针中需要包含的帧数。 终结点对象不得缓存此信息。 音频引擎可以根据其处理需求更改此数字。
  • u32BufferFlags 设置为 BUFFER_INVALID
如果此调用成功完成,则终结点必须按如下所示设置成员值:
  • pBuffer 指向已读取数据的有效内存。 这可能包括静音,具体取决于 在 u32BufferFlags 成员中设置的标志。
  • u32ValidFrameCount 保持不变。
  • 如果数据指针包含有效数据,则 u32BufferFlags 设置为 BUFFER_VALID;如果数据指针仅包含无提示数据,则设置为BUFFER_SILENT。 缓冲区中的数据实际上不需要静音,但在 pBuffer 中指定的缓冲区必须能够保存 u32ValidFrameCount 中包含的所有静音帧,以匹配所需的帧计数。

[in, out] pAeTimeStamp

指向 AE_CURRENT_POSITION 结构的指针,该结构包含缓冲区中捕获的数据的时间戳。 此参数可选。

返回值

备注

此方法从终结点返回指向缓冲区 pConnectionProperty-pBuffer>指针,其中包含需要作为输入传递到引擎的数据。 在调用 IAudioInputEndpointRT::ReleaseInputDataPointer 方法之前,数据和缓冲区指针必须保持有效。 终结点对象必须设置请求的信息量,并在不存在有效数据时插入静音。 终结点对象返回的缓冲区指针 pConnectionProperty-pBuffer> 必须对齐帧。 终结点不支持额外的空间,这些空间可能在与 pConnectionProperty 参数中传递的连接属性关联的APO_CONNECTION_PROPERTY中可用。

u32ValidFrameCount 成员中传递零是有效的请求。 在这种情况下,输入指针必须有效,但终结点不会从中读取。 pConnectionProperty-u32ValidFrameCount> 值必须小于或等于终结点支持的最大帧计数。 若要获取支持的帧数,请调用 IAudioEndpoint::GetFramesPerPacket 方法。

可以从实时处理线程调用此方法。 此方法的实现不得阻止、访问分页内存或调用任何阻塞的系统例程。

远程桌面服务音频终结点 API 用于远程桌面方案;它不适用于客户端应用程序。

要求

要求
最低受支持的客户端 Windows 7
最低受支持的服务器 Windows Server 2008 R2
目标平台 Windows
标头 audioengineendpoint.h

另请参阅

IAudioInputEndpointRT