You need to enable JavaScript to run this app.
文档中心
视频点播

视频点播

复制全文
下载 pdf
进阶功能
私有加密播放
复制全文
下载 pdf
私有加密播放

本文介绍 Flutter 播放器 SDK 播放火山引擎私有加密视频的客户端接入流程。客户端从播放器 SDK 获取设备绑定信息,业务服务端据此签发短期有效的 PlayAuthToken,客户端再使用 Vid 和 PlayAuthToken 创建播放源。

前提条件

  • Flutter 播放器 SDK 版本为 1.51.30 或更高版本。
  • 已完成播放器 SDK 初始化,并配置有效的 AppID 和包含相应 DRM 能力的播放器 License。
  • 视频已按火山引擎私有加密(新版)方案完成处理。
  • 业务服务端具备签发 PlayAuthToken 的能力。AK、SK 等长期凭证只能保存在服务端。

播放流程

  1. 客户端调用 getEngineUniqueId() 获取 UnionInfo,并调用 getEngineUniqueKek() 获取 DrmKEK。
  2. 客户端将 Vid、UnionInfo 和 DrmKEK 发送给经过业务鉴权的服务端接口。
  3. 业务服务端使用服务端 SDK 或受控签发服务生成 FileType=private_evideo 的短期 PlayAuthToken。
  4. 服务端只将 Vid 和 PlayAuthToken 返回客户端。
  5. 客户端创建 TTVideoEngineVidSource,设置播放源并开始播放。

获取设备绑定信息

播放前,检查当前设备是否支持 DRM,并获取设备绑定信息:

final unionInfo = await FlutterTTSDKManager.getEngineUniqueId();
final drmKek = await FlutterTTSDKManager.getEngineUniqueKek();

if (unionInfo == null ||
    unionInfo.isEmpty ||
    drmKek == null ||
    drmKek.isEmpty) {
  throw StateError('播放器 SDK 未返回设备绑定信息');
}

客户端向业务服务端请求 PlayAuthToken 时,服务端签发字段如下。

服务端签发字段值或来源
Vid待播放私有加密视频的 Vid。
FileType固定为 private_evideo。
UnionInfo客户端 getEngineUniqueId() 的返回值。
DrmKEK客户端 getEngineUniqueKek() 的返回值。
Format根据实际视频和服务端签发接口配置,例如 hls、dash 或 mp4。

警告

请勿在客户端保存 AK、SK 或实现 Token 签发逻辑。业务服务端应先完成用户和播放权限校验,再签发短期有效的 PlayAuthToken。

使用 PlayAuthToken 播放

客户端获取业务服务端返回的 PlayAuthToken 后,通过 Vid 模式设置播放源:

final playAuthToken = await requestPrivatePlayAuthToken(
  vid: vid,
  unionInfo: unionInfo,
  drmKek: drmKek,
);

final player = VodPlayerFlutter();
await player.createPlayer();

final source = TTVideoEngineVidSource.init(
  vid: vid,
  playAuthToken: playAuthToken,
);

await player.setMediaSource(source);
await player.play();

requestPrivatePlayAuthToken 代表业务方自己的鉴权接口,用于根据 Vid、UnionInfo 和 DrmKEK 生成 PlayAuthToken。

常见问题

获取不到 UnionInfo 或 DrmKEK

确认播放器 SDK 已初始化、License 有效,并检查当前设备是否支持 DRM。

服务端已返回 Token,但视频播放失败

检查 Vid、FileType、UnionInfo、DrmKEK 和 Token 有效期是否一致,并确认签发信息来自当前播放设备。

是否可以在客户端签发 Token

不可以。客户端只负责获取设备绑定信息和使用 Token 播放,长期凭证和签发逻辑必须保留在服务端。

最近更新时间:2026.08.21 17:47:05
这个页面对您有帮助吗?
有用
有用
无用
无用