# 排查受保护内容的播放问题

使用已脱敏的诊断信息，排查 DRM-X 6.0 的打包加密、授权、证书、DRM 许可证、Manifest、解密和播放问题。

加密视频和 DRM 许可证通过不同路径传输

CDN 负责传输加密视频。您的后端检查观看权限，DRM 许可证服务则授权兼容设备解密播放。

- 01**存储 / CDN**

向播放器传输加密媒体。

- 02**您的后端**

确认用户有权观看后，向 DRM-X 请求播放授权。

- 03**DRM-X**

验证播放授权并处理 DRM 许可证请求。

- 04**播放器 + 设备**

使用设备的 DRM 系统获取许可证，并播放加密媒体。

您的后端决定访问; DRM-X 执行已签名的政策。 加密的媒体和DRM 许可证会遵循不同的传送路径 。

## 故障阶段对照表[#](#failure-stage-matrix)

| 阶段 | 常见错误表现 | 优先检查 | 
| --- | --- | --- |

| 观看权限 | 您的端点返回 401/403 | 检查登录状态、订阅、课程、租赁或活动的观看权限。 | 

| 播放会话 | 播放会话 API 拒绝请求 | 检查凭据权限范围、Site ID、Content ID、策略及发布状态。 | 

| Manifest | 404、CORS、解析或媒体分片错误 | 检查已注册的 Manifest、媒体分发域名、对象是否存在，以及响应头。 | 

| Key system | CDM 不支持或拒绝请求 | 检查实体设备、浏览器版本、DRM 能力、隐私模式及 OS 支持情况。 | 

| 证书 | FairPlay 证书/ SPC 设置失败 | 检查部署、内容类型、授权，以及二进制数据是否原样传输。 | 

| 许可证 | DRM 提供方拒绝请求或二进制解析失败 | 检查 Token 有效期、DRM 是否匹配、Challenge 请求体、内容类型及策略。 | 

| 解密/播放 | 密钥状态、编码格式、HDCP、解码器或媒体错误 | 检查 KID 映射、允许的画质档位、输出路径、编码格式及设备限制。 | 



## 使用安全诊断[#](#use-safe-diagnostics)

- 创建新的调试会话，一次复现一个问题。
- 从播放器导出已脱敏的 Live 日志和 Playback diagnostics。
- 仅记录阶段、事件、关联 ID、状态、耗时、浏览器/OS、DRM 系统和已脱敏的 Content ID。
- 日志中不得包含 Access Keys、DRM License Tokens、授权请求头、Manifest 查询参数中的密钥信息、原生 DRM Challenge、许可证响应、证书、私钥或内容密钥。



## 平台检查[#](#platform-checks)

### Windows Edge

在实体 Windows 设备的 Edge 中，Auto 应优先使用 PlayReady。仅当已验证的 PlayReady 启动路径失败时，才在限定条件下回退到 Widevine。

### macOS Safari

可用时使用已验证的 Shaka MSE FairPlay 路径，并支持回退到原生 HLS。分别检查 MSE、FairPlay 证书、CKC、编码格式和输出策略。

### iPhone 和 iPad Safari

使用原生 HLS FairPlay。在实体设备上测试用户手势与自动播放规则、前后台切换，以及 SPC/CKC 数据是否原样传输。

### Android 和 TV

检查 Widevine 安全级别、编码格式、解码分辨率、HDMI/HDCP、Media3 轨道选择，以及播放器生命周期中的会话释放。



## 提交支持请求前[#](#before-escalating)

提供 UTC 时间、调试会话 ID、关联 ID、Content ID、浏览器/OS/设备、所选 DRM、最先失败的阶段、预期结果和已脱敏日志。说明同一个状态为 Published 的加密文件能否在其他平台播放。

<!-- Canonical: https://docs.drm-x.com/zh-Hans/troubleshooting/playback -->
<!-- Language: zh-Hans -->
