Skip to main content
Microsoft 游戏开发工具包 (GDK) 包含一组 API,用于广播通知、显示广播 UI、为屏幕截图、视频剪辑和广播添加元数据,以及采集诊断用途的屏幕截图和视频。广播通知可让你了解广播管道的状态。广播 UI 让用户可以控制何时开始和停止广播。添加元数据可以更方便地检索录制内容,例如添加地图名称、游戏中的关卡,或与被捕获的特定时刻有关的任何信息。综合使用这些 API,可以让你对屏幕截图、视频剪辑和广播拥有更好的控制力和洞察力。

广播通知与 UI

XAppBroadcastGetStatus 显示广播状态的更新信息。使用此方法可确定广播是否可以开始。决定广播能否开始的因素很多,例如确认捕获资源是否可用、游戏是否允许广播,或用户和/或系统是否未禁用广播。如果 XAppBroadcastStatus 结构中的所有成员(canStartBroadcast 除外)均返回 false,则 canStartBroadcast 返回 true。如果可以开始广播,请调用 XAppBroadcastShowUI 为当前用户显示广播 UI。随后必须由用户手动发起广播。XAppBroadcastIsAppBroadcasting 用于判断当前应用是否正在广播。XAppBroadcastUnregisterIsAppBroadcasting 用于取消对广播状态更改事件的注册。

为屏幕截图、视频剪辑和广播添加元数据

系统提供了若干 API,用于添加和管理附加到屏幕截图、视频剪辑或广播上的元数据。添加元数据是可选的,但可以让用户更方便地找到想要的录制内容。元数据可以有多种形式,例如字符串、整数、双精度浮点数。系统会为元数据项分配存储空间。当分配的空间不足时,AppCaptureMetatPriority 用来确定已存储元数据项的相对优先级,以及释放空间时清除元数据的顺序。

语音聊天

语音聊天应被视为用户生成内容,可能包含个人身份信息或其他潜在敏感数据。因此,游戏聊天中呈现给用户的语音永远不应包含在任何录制的剪辑或游戏捕获中。可以通过将包含用户语音的渲染流分配为合适的音频类别 AudioCategory_GameChat 来实现这一点。这样系统就会相应地标记该流,在录制 Game DVR 剪辑时忽略这条音频流。

诊断屏幕截图与视频剪辑

借助这些 Microsoft 游戏开发工具包 (GDK) API,你可以出于诊断目的捕获屏幕截图和视频剪辑。请注意,这些诊断 API 只在开发套件上可用。在零售主机上调用这些 API 会立即失败。捕获的屏幕截图和视频剪辑会保存到本地游戏分区,而不是通常的用户存储空间。如果游戏运行在高动态范围 (HDR) 模式下,调用方可以指定捕获标准动态范围 (SDR) 屏幕截图、HDR 屏幕截图或两者兼有。屏幕截图录制完成后,返回的结构中包含屏幕截图文件位置的路径信息。对于视频剪辑,根据用户的 Game DVR 设置,可能返回 H264(Advanced Video Coding,AVC)编码的视频或 H265(High Efficiency Video Coding,HEVC)编码的视频。返回的结构还包含开始时间、时长以及宽度和高度等信息。

普通屏幕截图

Microsoft 游戏开发工具包 (GDK) 新增了捕获普通屏幕截图的功能。捕获的屏幕截图会保存到普通的用户屏幕截图存储空间。同时,系统会显示一条通知,提示已经捕获到屏幕截图。由于屏幕截图存储在与游戏分区分离且无法直接访问的分区中,必须使用提供的 open/read/close 流 API 来访问所录制的屏幕截图。请注意,如果游戏运行在 HDR 模式下,将同时返回 SDR 版本和 HDR 版本屏幕截图的路径。

参考 API 文档

另请参阅

XAppCapture
最后修改于 2026年8月13日