截取屏幕截图。
语法
HRESULT XAppCaptureTakeScreenshot(
XUserHandle requestingUser,
XAppCaptureTakeScreenshotResult* result
)
参数
requestingUser _In_
类型:XUserHandle
表示请求屏幕截图的用户的句柄。
result _Out_
类型:XAppCaptureTakeScreenshotResult*
返回的屏幕截图结果。
返回值
类型:HRESULT
函数结果。
备注
注意
在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程。
注意
Xbox 游戏流式处理不支持此功能。 请参阅下面的“要求”部分,了解哪些平台支持它。
注意
当分配的空间已满时,将删除较旧的屏幕截图,以便为新的屏幕截图腾出空间。 使用 PLS (持久本地存储) 、连接的存储 (例如 XGameSave 或 XGameSaveFiles) 或类似的存储系统,以便将屏幕截图保留一段时间。
XAppCaptureTakeScreenshot 截取屏幕截图(就像用户触发它一样)。 这将显示 toast 和保存游戏屏幕截图。 如果在 SDR 中运行游戏,将生成单个文件。 如果在 HDR 中运行游戏,会生成两个文件,一个为 HDR 格式,一个为 SDR 格式。 屏幕截图可能会根据用户的偏好自动上传到 Xbox Live。 成功截取屏幕截图后,可以使用 XAppCaptureOpenScreenShotStream 打开屏幕截图流并使用 XAppCaptureReadScreenshotStream 读取屏幕截图来读取生成的文件。 这两个函数都要求您使用从这个函数返回的 XAppCaptureTakeScreenshotResult 中返回的本地 ID。
XAppCaptureTakeScreenshotResult takeScreenshotResult = {0};
XUserHandle user = nullptr;
/* See XUserAddAsync, XUserAddResult on how to initialize XUserHandle */
bool hasHDR = false;
LOG_IF_FAILED(XAppCaptureTakeScreenshot(user, &takeScreenshotResult));
hasHDR = static_cast<bool>(takeScreenshotResult.availableScreenshotFormats & XAppCaptureScreenshotFormatFlag::HDR);
appLog.AddLog("LocalId %s (%s)\n", takeScreenshotResult.localId, hasHDR ? "SDR & HDR" : "SDR only");
要求
头文件:XAppCapture.h
库:xgameruntime.lib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机
另请参阅
GameDVR 概述
XAppCapture 成员
XAppCaptureOpenScreenShotStream
XAppCaptureReadScreenShotStream
XAppCaptureCloseScreenshotStream
XAppCaptureTakeScreenshotResult