游戏 DVR 和广播
Microsoft 游戏开发工具包(GDK)包含用于广播通知的 API 集,这些 API 会显示广播 UI、将元数据添加到屏幕截图、视频剪辑、广播并捕获诊断屏幕截图和视频。 广播通知可让您深入了解广播管道。 广播 UI 让用户可以控制广播的开始和停止。 通过添加元数据,您可以更轻松地搜索记录,例如添加地图名称或游戏中的等级,或者有关捕获的特定时刻的任何信息。 结合使用这些 API,您可以更好地控制和了解屏幕截图、视频剪辑和广播。
广播通知和 UI
XAppBroadcastGetStatus
显示有关广播状态的状态更新。 使用此方法来确定广播是否可以开始。 确定广播是否可以开始涉及许多因素,例如确保捕获资源可用,游戏是否允许广播,或用户和/或系统未禁用广播。 如果 XAppBroadcastStatus
结构的所有成员(canStartBroadcast
除外)返回 false
,则 canStartBroadcast
返回 true
。 如果广播可以开始,请调用 XAppBroadcastShowUI
以显示当前用户的广播 UI。 随后,该用户必须手动启动广播。
XAppBroadcastIsAppBroadcasting
用于确定当前应用是否正在广播。
XAppBroadcastUnregisterIsAppBroadcasting
用于取消注册广播状态中的更改事件。
将元数据添加到屏幕截图、视频剪辑和广播
使用几个 API 添加和管理附加到屏幕截图、视频剪辑或广播的元数据。 添加元数据是可选的。 但是,它可以让用户更容易找到所需的录像。 元数据可以采用多种形式,例如字符串、整数、双精度。 系统为元数据项分配存储空间。 如果分配的空间不足,AppCaptureMetatPriority
用于确定存储的元数据项的相对优先级,以及清除元数据以释放空间的顺序。
语音聊天
语音聊天应被视为用户生成的内容,其中可以包含个人身份信息或其他潜在敏感数据。 因此,用户在游戏聊天中呈现的声音不应包含在任何录制的剪辑或游戏捕获中。 为此,可以将正确的音频类别分配给包含用户声音的呈现流,即 AudioCategory_GameChat
。 这会相应地标记流,以便系统知道在捕获游戏 DVR 剪辑时忽略此音频流。
诊断屏幕截图和视频剪辑
借助这些 Microsoft 游戏开发工具包(GDK) API,可以捕获屏幕截图和视频剪辑以达到诊断目的。 请注意,这些诊断 API 仅在开发工具包中提供。 在零售主机上调用这些 API 将导致立即失败。 捕获的屏幕截图和视频剪辑将转到本地游戏分区,而不是通常的用户存储。 如果游戏在高动态范围 (HDR) 模式下运行,则调用方可以指定是捕获标准动态范围 (SDR) 屏幕截图、HDR 屏幕截图,还是同时捕获这两种屏幕截图。 记录完屏幕截图后,生成的结构将包含有关屏幕截图文件位置的路径信息。 对于视频剪辑,根据用户的游戏 DVR 设置,可返回 H264(高级视频编码 (AVC))编码的视频或 H265(高效率视频编码 (HEVC))编码的视频。 生成的结构还包括开始时间、持续时间、宽度和高度等信息。
正常的屏幕截图
Microsoft 游戏开发工具包(GDK)的新增功能为捕获普通屏幕截图的功能。 生成的屏幕截图会存储在普通用户用于存储屏幕截图的空间中。 另外,还会显示一个系统通知表明捕获了屏幕截图。 由于屏幕截图存储在不能直接从游戏分区访问的单独分区中,因此您必须使用提供的打开/读取/关闭流 API 来访问所录制的屏幕截图。 请注意,如果游戏在 HDR 模式下运行,则将同时返回屏幕截图的 SDR 版本和 HDR 版本的路径。