# Samsung Tizen SDK 和 TV 评估
安装 Samsung TV 评估播放器,配置并签名 WGT,然后使用 Tizen Universal Player SDK 集成 Widevine VOD。
**Samsung TV 使用 Tizen Web 应用程序。** 本指南涵盖 Widevine DASH VOD 和 Samsung AVPlay。使用公共评估套件试用播放器,或使用 Professional/EnterpriseSDK 连接您自己的后端。
## 1. 下载公开的 TV 评估套件[#](#try-tv-app)
[下载 Samsung 评估套件 ZIP](https://docs.drm-x.com/downloads/tizen/20260918.3/drmx-tizen-evaluation-20260918.3.zip)
ZIP 包含 `DRMXEvaluation.wgt`、Python 本地配套服务和配置脚本。如果已下载完整套件,也可[单独下载未签名 WGT](https://docs.drm-x.com/downloads/tizen/20260918.3/DRMXEvaluation.wgt)。**WGT 必须针对您的 TV 完成配置并重新签名。**这是开发安装方式,不是 Samsung 商店应用,也不是通用的一键安装程序。
- 兼容的物理 Samsung TV 和同一可信私有 LAN 上的计算机。
- Python 3.12+、Tizen Studio、Samsung TV 扩展以及 Samsung Certificate Extension 2.0.73 或更高版本。
- 包含您设备的 DUID 的 Samsung TV 证书配置文件。您不需要为此公开演示付费 DRM-X 计划。
遵循 Samsung 官方[TVSDK 安装](https://developer.samsung.com/smarttv/develop/getting-started/setting-up-sdk/installing-tv-sdk.html)和[TV 证书指南](https://developer.samsung.com/smarttv/develop/getting-started/setting-up-sdk/creating-certificates.html)。工具屏幕因版本而异。
验证公共下载
评估套件 SHA-256:
```
379f72d32c80612c64cb235599661edf6862badf718500ac04f9d7e44ae22388
```
未签名 WGT 的 SHA-256:
```
1682fb3b8615bf68acd74a2ac17ef793a6cc30ff682bdd917bb3a3035b0c084b
```
PowerShell:`Get-FileHash .\DRMXEvaluation.wgt -Algorithm SHA256`。配置或签名的小部件具有不同的哈希值。
## 2. 配对您的 TV 并创建其证书[#](#prepare-tv)
- **在 TV 上启用 Developer Mode。**在支持的 TV 上打开 Apps,输入 12345 进入 Developer Mode,启用该模式,填写计算机的 LAN IP,并按提示重启 TV。型号不同的设备请遵循 Samsung [TV 设备指南](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html)。
- **连接 TV。**打开 Tizen Studio Device Manager / Remote Device Manager,添加 TV 的 LAN IP 并连接。TV 必须能够访问该计算机;仅在可信私有网络中允许本地配套服务的访问。
- **创建 Samsung TV 证书。**打开 Certificate Manager → Add → Samsung → TV。使用自己的 author certificate,以及包含此 TV DUID 的 distributor certificate。将 author private key 保存在安全的签名存储中。
- **允许安装。**在 Device Manager 中,选择已连接的 TV 并选择**Permit to install applications**(如果可用)。保留接下来的命令的证书配置文件名称。
## 3. 配置、构建和安装[#](#install-evaluation)
将评估 ZIP 提取到不带空格的短路径。在那里打开一个终端。将两个占位符替换为实际的私有 LAN 地址:
```
python configure-evaluation.py --computer-ip YOUR_COMPUTER_IP --tv-ip YOUR_TV_IP
```
**保持此终端运行。** 脚本会创建 `app` 文件夹,并启动仅允许您的 TV IP 访问、使用新临时访问凭据的本地配套服务。它通过 HTTPS 连接公开演示,不需要您的客户凭据。该服务四小时后过期;不要发布已配置的 Widget,也不要向互联网开放其端口。
在同一文件夹中打开第二个终端。使用 Tizen Studio 安装中的 CLI 可执行文件,并替换证书配置文件和 TV 地址:
```
tizen build-web -out .build -- app
tizen package -t wgt -s YOUR_SAMSUNG_PROFILE -- app/.build
sdb connect YOUR_TV_IP:26101
tizen install -n DRMXEvaluation.wgt -s YOUR_TV_IP:26101 -- app/.build
tizen run -p DrmXEval01.Player -s YOUR_TV_IP:26101
```
在 Windows 上,工具通常位于 Tizen Studio 内的`tools\ide\bin\tizen.bat`和`tools\sdb.exe`。如果未找到命令,请使用其完整路径或将该文件夹添加到终端 PATH。
四小时有效期结束后,停止旧的本地配套服务,使用新的 `--output app-new` 文件夹再次运行配置脚本,然后重新构建并签名。新配置会使用新的临时访问凭据;不要继续使用已过期的安装配置。
## 4. 测试 VOD 和遥控器操作[#](#test-playback)
播放效果合成示意图。播放器界面中加入了提供的视频画面和示例字幕。
- 使用上下方向键选择一个 VOD 视频,再按 OK。在真实 TV 上确认画面持续播放且声音正常。
- 向右移动焦点到控件区域。测试暂停/继续、上一项/下一项、前后跳转 10 秒和进度条。
- 尝试全屏。 Back 在停止播放之前关闭菜单或退出全屏。音量保持在 TV 的普通遥控器上。
- 检查播放列表、播放下一个、随机播放和重复。音频/字幕选项取决于实际媒体轨道。
- 关闭本地配套服务前先停止播放。未经单独验证,直播条目保持不可用;此套件不会启动直播。
演示用本地配套服务为已测试的 Samsung Smart TV 选择 Full HD 编码档位,不会解密或转码媒体。公开套件不包含受版权保护的媒体或外部歌曲字幕。真机字幕切换测试使用了另行提供的授权字幕;测试自己的内容时,请加入兼容且有权使用的字幕轨道。
## 5. 使用 SDK 构建您自己的应用程序[#](#quick-start)
- **下载 Tizen SDK ZIP.**打开 [Console → Integrations](https://6.drm-x.com/console/integrations) 使用有效的 Professional 或 Enterprise 组织。阅读`README.md`。
- **使用完整的播放器示例。**将`universal-player/`复制到 TV Web 应用程序中。编辑`runtime-config.js`:设置 HTTPS 播放会话端点、发布的 Content IDs 和观众身份验证回调。
- **连接后端。**验证观众身份和访问权限,为 `widevine`、`dash`、`vod`、`streaming` 返回 [Universal Playback Session Contract v1](https://docs.drm-x.com/zh-Hans/api-reference/playback-sessions),并支持会话释放接口。客户端支持直接 Token 或 Token Proxy 授权。
- **配置网络访问。**将您的实际后端、媒体和许可证来源添加到`config.xml`。根据需要,为 TV 源配置服务的 CORS。将 Site Key 和 Access Key 仅保留在后端。
- **使用您的身份进行签名。**使用相同的 Tizen 构建/打包步骤,其中`universal-player`作为输入,`DRMXPlayer.wgt`作为输出文件名,`DrmXSdk001.Player`作为示例应用程序 ID。在分发应用程序之前使用您自己的标识符。
示例默认请求最高 1080p。后端必须返回 TV 能够解码的编解码器与编码档位。此能力请求不会改写 UHD manifest;最终仍以 DRM 许可证和策略为准。
### 保留你自己的界面
先加载 Samsung 的 `$WEBAPIS/webapis/webapis.js`,再加载 `drmx-tizen.js`。添加原生视频对象,并让该页面持有一个播放器实例:
```
```
```
const player = new DrmXTizen.Player({
endpoint: 'https://app.example.com/api/playback-session',
authentication: () => ({Authorization: 'Bearer ' + viewerToken}),
maximumHeight: 1080,
rect: {x:0, y:0, width:1920, height:1080},
onState: state => { statusLabel.textContent = state; }
});
await player.play('YOUR_PUBLISHED_CONTENT_ID');
player.pause();
player.resume();
player.seekTo(30000);
await player.stop();
await player.dispose(); // final dismissal or sign out
```
SDK 原样传递 Widevine challenge 和许可证字节;停止播放、切换内容或释放播放器时,会取消过时任务并释放会话。使用外部 WebVTT 时,请提供目录轨道元数据,并为 `UniversalPlayerService` 提供经过授权的 `subtitle(contentId, trackId)` 回调。平台媒体和轨道限制请参见 Samsung [AVPlay API](https://developer.samsung.com/smarttv/develop/api-references/samsung-product-api-references/avplay-api.html)。
## 设备测试结果和故障排除[#](#qualification)
**真机测试:**Samsung Smart TV (Tizen),2026 年 9 月 17 日。完整 AVPlay UI 与本地配套服务成功播放了受保护 Full HD VOD,播放时间持续推进;英文/中文外部字幕选择及修正后的播放已在 TV 上确认。可复用的客户后端集成为此 SDK 预览版新增内容,已通过自动化测试;投入生产前仍需使用自己的后端与真实设备验证。
| 症状 | 检查 |
| --- | --- |
| 无法安装 WGT | 将 Samsung TV 证书与此 TV 的 DUID 一起使用,启用 Developer Mode 并允许安装。公共 WGT 未签名。 |
| 应用程序显示配置/连接失败 | 保持本地配套服务的终端运行;检查两端 LAN IP、私有网络防火墙规则及四小时有效期。重新配置后必须重新构建。 |
| TV 黑屏或卡顿 | 检查声音和播放进度、编解码器、支持的分辨率及 HDCP 策略。在 Samsung Smart TV 上使用 FHD 编码档位。截图中的黑色视频区不等同于 TV 实际播放黑屏。 |
| 字幕不可用 | 提供兼容的轨道。AVPlay 不支持任意切换 DASH TEXT 轨道;示例支持经过授权的外部 WebVTT 字幕。 |
| 桌面预览正常,但 TV 无法使用 | 浏览器中的界面预览不会调用 AVPlay 或 Widevine。请在真实 TV 上测试,并记录已去除敏感信息的错误代码。 |
本版本尚未验证直播、离线下载、HDR 和其他 Samsung 型号。通过 Samsung 商店发布还需遵循其认证与提交流程。[比较平台并查看所有应用截图 →](https://docs.drm-x.com/zh-Hans/sdk/native-apps)