播放器 SDK 指标收集与密钥服务接口文档
| /key/* | 密钥服务 | ZQMF 加密视频的密钥获取、设备绑定、统计 |
| /metrics/* | 指标服务 | SDK 播放质量上报、Dashboard 查询 |
| /health | 健康检查 | 返回 {"status":"ok"} |
| /key/acquire | HMAC 签名 | sign = HMAC-SHA256(appSecret, videoId+deviceFp+timestamp) |
| /metrics/report | appId 验证 | 需合法 appId |
| 其他接口 | Bearer Token | Header: Authorization: Bearer {ADMIN_TOKEN} |
{
"appId": "your_app_id", // 必填
"videoId": "video_abc123", // 必填
"deviceFp": "sha256:a3f2...", // 必填
"sessionId": "play_7f3a2b1c", // 必填
"result": "SUCCESS", // 必填: SUCCESS | FAILED
"errorCode": 0, // FAILED 时必填
"errorMessage": "",
"firstFrameMs": 1180, // 首帧时间(毫秒)
"totalDurationMs": 15000,
"playDurationMs": 14200,
"bufferingCount": 2,
"bufferingDurationMs": 800,
"stutterRatio": 0.053,
"device": {
"model": "Pixel 6", "manufacturer": "Google",
"osVersion": "Android 13", "apiLevel": 33,
"cpu": "Tensor", "ram": 8192,
"codecH264": true, "codecH265": true
},
"network": {
"type": "WiFi", "carrier": "中国移动",
"downBandwidthKbps": 50000, "signalDbm": -45
},
"playback": {
"sourceType": "ZQMF", "engineType": "IJK",
"codecMode": "HARDWARE", "resolution": "1280x720",
"bitrate": 1135
}
}
所有查询接口需要 Admin Token
| 参数 | 类型 | 说明 |
|---|---|---|
| appId | string | 可选 不传=全局 |
| from / to | string | 可选 ISO 8601,默认最近 24h |
| 参数 | 类型 | 说明 |
|---|---|---|
| interval | string | 可选 hour(默认)| day |
| 参数 | 类型 | 说明 |
|---|---|---|
| limit | int | 可选 默认 10 |
| 参数 | 类型 | 说明 |
|---|---|---|
| network | string | 可选 4G / 5G / WiFi |
| carrier | string | 可选 运营商筛选 |
| limit / offset | int | 可选 分页 |
| 参数 | 类型 | 说明 |
|---|---|---|
| sortBy | string | 可选 failRate | plays | firstFrame |
| 参数 | 类型 | 说明 |
|---|---|---|
| videoId / deviceFp / result / errorCode | — | 可选 筛选 |
| limit / offset | int | 可选 分页 |
{
// ... 完整上报数据 ...
"rootCause": "弱网环境导致分片下载超时",
"suggestion": "启用低码率优先策略"
}
{
"appId": "app_id", "videoId": "video_id",
"deviceFp": "sha256:...", "timestamp": 1774132800,
"nonce": "random16", "sign": "hmac_hex"
}
| Code | 含义 | 常见原因 |
|---|---|---|
| 700 | 网络超时 | 弱网/CDN 不可达 |
| 701 | 流读取错误 | 连接中断 |
| 900 | 解码失败 | 设备不支持编码/低内存 |
| -10000 | 格式不支持 | 非标格式 |
| -38 | 非法状态 | 播放器异常 |