XGameStreamingGetStreamAddedLatency

获取流式处理相关延迟的最近平均值。

语法

HRESULT XGameStreamingGetStreamAddedLatency(  
         XGameStreamingClientId client,  
         uint32_t* averageInputLatencyUs,  
         uint32_t* averageOutputLatencyUs,  
         uint32_t* standardDeviationUs  
)  

参数

client _In_
类型:XGameStreamingClientId

要查询其延迟的流式处理客户端设备。

averageInputLatencyUs _Out_
类型:uint32_t*

Xbox 游戏收到输入的最近一段时间内的平均延迟(以微秒为单位)。

averageOutputLatencyUs _Out_
类型:uint32_t*

客户端设备上呈现游戏帧的最近一段时间内的平均延迟(以微秒为单位)。

standardDeviationUs _Out_
类型:uint32_t*

在最近一段时间内延迟中观察到的抖动测量标准偏差的平均值(以微秒为单位)。

返回值

类型:HRESULT

如果成功,则返回 S_OK;否则返回错误代码。

可能的错误

错误代码 错误值 错误原因
E_GAMESTREAMING_NOT_INITIALIZED 0x89245400 XGameStreaming 运行时尚未初始化。 在调用其他 API 之前,请先调用 XGameStreamingInitialize
E_GAMESTREAMING_NO_DATA 0x89245402 请求的数据目前不可用, 稍后或许可用。

有关错误代码的列表,请参阅错误代码

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

注意

如下所述,输入和输出延迟值度量不同的值,可以从不同的源计算。 这些值不应类似,应独立处理。

XGameStreamingGetStreamAddedLatency提供有关因游戏流式处理造成的测量延迟的数据。 游戏可利用此数据来更好地了解玩家对于流式处理的体验。

请务必注意,这并提供玩家可能注意到的完全的端到端延迟(例如,它直接反映从连接流式处理客户端设备的控制器上的一个按钮动作直到呈现新帧作为响应之间的延迟。)例如,以下成分包括在这些度量中:

  • 游戏引擎渲染时间
  • 从图像被传递到客户端设备上进行呈现直到玩家看到图像之间的时间
  • 客户端设备上控制器的蓝牙® 传输和解码时间

相反,输入延迟包括:

  • 游戏流式传输应用程序处理从控制器接收的输入所花费的时间。
  • 通过网络从游戏流式传输应用程序传输到正在运行游戏的服务器所花费的传输时间。

输出延迟包括:

  • 游戏呈现的每一帧的编码时间。
  • 通过网络将此帧传输到玩家正在与之互动的应用程序所花费的时间。
  • 应用程序中因准备向玩家呈现帧所花费的解码时间。

XGameStreamingGetStreamAddedLatency是每几秒更新一次的平均度量值。 可使用 XGameStreamingGetAssociatedFrame API 获取更精确的度量值。 有关详细信息,请参阅游戏流式传输延迟补偿深入研究

要求

头文件:xgamestreaming.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XGameStreaming
游戏流式传输延迟补偿概述