XGameStreamingGetStreamPhysicalDimensions
获取视频流在流式处理客户端上呈现时的物理大小。
语法
HRESULT XGameStreamingGetStreamPhysicalDimensions(
XGameStreamingClientId client,
uint32_t* horizontalMm,
uint32_t* verticalMm
)
参数
client _In_
类型:XGameStreamingClientId
要查询其物理大小的客户端。
horizontalMm _Out_
类型:uint32_t*
视频流的水平轴的大小(以毫米为单位)。
verticalMm _Out_
类型:uint32_t*
视频流的垂直轴的大小(以毫米为单位)。
返回值
类型:HRESULT
如果成功,则返回 S_OK;否则返回错误代码。
可能的错误
错误代码 | 错误值 | 错误原因 |
---|---|---|
E_GAMESTREAMING_NOT_INITIALIZED | 0x89245400 | XGameStreaming 运行时尚未初始化。 在调用其他 API 之前,请先调用 XGameStreamingInitialize。 |
E_GAMESTREAMING_CLIENT_NOT_CONNECTED | 0x89245401 | 指定客户端未连接。 |
E_GAMESTREAMING_NO_DATA | 0x89245402 | 请求的数据目前不可用, 稍后或许可用。 |
有关错误代码的列表,请参阅错误代码。
备注
可使用此方法来确定流是否将被发送到较小的设备(例如,智能手机)。
这样,你就可以根据设备大小呈现更易于玩家的设备使用的体验(例如,使用更大的字号)。
如需游戏响应流的物理维度的更改,那么应该通过 XGameStreamingRegisterClientPropertiesChanged 注册回调。
示例
以下代码示例演示如何使用 XGameStreamingGetStreamPhysicalDimensions
函数为流式客户端查找最小维度。
void GetSmallestStreamingClient(uint32_t& widthMm, uint32_t& heightMm)
{
// If we don't know what the smallest client is, then search through them to find it
if (m_smallestClient == XGameStreamingNullClientId)
{
for (const auto client : m_streamingClients)
{
if (client.clientId != XGameStreamingNullClientId)
{
uint32_t clientWidthMm = 0;
uint32_t clientHeightMm = 0;
if (SUCCEEDED(XGameStreamingGetStreamPhysicalDimensions(client.clientId, &clientWidthMm, &clientHeightMm)))
{
if (clientWidthMm < m_smallestClientWidthMm)
{
m_smallestClientWidthMm = clientWidthMm;
m_smallestClientHeightMm = clientHeightMm;
}
}
}
}
}
widthMm = m_smallestClientWidthMm;
heightMm = m_smallestClientHeightMm;
}
要求
头文件: xgamestreaming.h
库:xgameruntimelib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机
另请参阅
XGameStreaming
XGameStreamingRegisterClientPropertiesChanged
XGameStreaming