PLAYDECK API

PLAYDECK API 是一种允许任何人与 PLAYDECK 进行交互的接口。本文将介绍如何开始使用该 API 进行开发:

本文内容:
引言
示例
实现该 API


引言

PLAYDECK API 支持双向通信:您可以接收播放状态,也可以向 PLAYDECK 发送命令。.

该 API 基于 WebSockets:WebSockets 是 JavaScript 的一部分,因此您可以使用 JavaScript、Node.js 或 TypeScript 进行开发。WebSocket 端口固定为 11411,并在 PLAYDECK 中始终处于启用状态。.

我们决定采用 WebSockets,因为:

  • 它支持双向传输:从 PLAYDECK 发送和接收
  • 无需安装:使用任意文本编辑器
  • 无需特定的网络安全措施
  • 使用 HTML 轻松构建自己的用户界面或动画


PLAYDECK 支持接收哪些内容?

  • 触发或播放块、片段、叠加层或动作
  • 像流媒体一样开始/停止视频资源


PLAYDECK能提供什么?

  • 事件(例如:某个块或片段已开始)
  • 播出状态(例如:当前正在播放的内容以及剩余的播出时段)
  • 内容(例如包含模块和片段的完整播放列表)


示例

1) 伴侣

bitfocus Companion 在 PLAYDECK 模块中使用了 PLAYDECK API。这能让您快速体验该 API 的功能:
https://playdeck.tv/howto/companion/


2) 导演视角

该 API 也被 PLAYDECK 中的 Director View 所使用。您可以在此处找到 HTML 模板:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Director-View


3) HTML 叠加层

该 API 还被一些 HTML 概述示例所采用,您可以在这里找到这些示例:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Overlay-Templates


实现该 API

我们为您准备了一些示例,以便您快速了解一个可运行的脚本。请按顺序查看这些示例,因为它们是循序渐进的。.

提示 1: 您可以双击任何 HTML 文件,在浏览器中打开并运行脚本/API

提示 2: 您可以编辑文件“WebSocketSDK\Version.js”来更改 IP 地址


1) 原生连接(无需 API)

我们先从一个非常简约的例子开始:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Automation-And-UI\SampleMinimalistic.html

这将使用原生 JavaScript 代码打开与 PLAYDECK 的 WebSocket 连接,并发送一条命令,以播放第一个区块中的第一个片段。.

另一个示例如下:您可以点击 HTML 中的按钮,在 PLAYDECK 中开始播放:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Automation-And-UI\SampleUserInterface.html


2) 极简连接(支持 API)

本示例将介绍该 API:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Automation-And-UI\SampleMinimalisticSDK.html

它使用了“WebSocketAPI”子文件夹,并包含其中的主脚本“AppInterface.js”,该脚本相当于整个API的“加载器”。.

现在,API 将自动处理您与 PLAYDECK 的 WebSocket 连接,因此您无需手动编写相关代码。该 API 还向 JavaScript 提供了模板框架。模板名称由文件名衍生而来,因此两者必须一致。 系统提供了若干预定义函数。在本示例中,我们仅使用“Start”函数:当与 PLAYDECK 的 WebSocket 连接成功建立后,API 将调用此函数。在本示例中,该函数将播放频道 1 的第一个片段。.


3) 更多框架功能

除了“Start”之外,还有许多其他框架函数可用:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Automation-And-UI\SamplePlayRandomClip.html

有关所有可用函数的详细信息,请参阅 JS 文件中的注释。.

如果您打开浏览器控制台(通常按 F12 键),即可看到“console.log”语句的输出结果。.


4) 解析项目数据

要访问所有剪辑,可以使用“DataProject”函数,本示例演示了如何枚举项目数据:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Automation-And-UI\SampleShowPlaylist.html


5) 自定义日程表示例

最后一个示例展示了一个完整的、可正常运行的脚本,用于在 PLAYDECK 外部进行自定义调度:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\HTML-Templates\Automation-And-UI\SampleWeeklySchedule.html


翻译

本文将介绍如何为 PLAYDECK 进行翻译工作。.


引言

现有语言已通过在线工具预先翻译。我们使用 DeepL 对于这一点。这种方法在处理较长的句子(例如“设置”)时效果很好,但在处理单个词(例如“输入”)时效果却很差。.

此外,某些翻译的字数可能多一些或少一些。这可能会导致某些单词无法“塞进”某个按钮中。如果无法缩短翻译内容,我们也可以将按钮加宽。.

正因如此,每种语言都需要进行微调。.


工作流程

这些翻译正在通过一个名为“SIL Editor”的外部工具进行编辑,您可以在该工具中加载并编辑我们的语言。随后,您可以在PLAYDECK中直接预览编辑内容。.

编辑完成后,请将语言文件发送给我们,我们会将您的修改内容导入到应用中。.


下载与安装

您需要 PLAYDECK 4.2b6 版本,可在此处下载:
https://downloads.playdeck.tv/4.2b6/PlaydeckSetup.exe

您需要SIL编辑器,可在此处获取(请仅下载“SIL Editor”):
https://www.sicomponents.com/download/

此外,你还需要包含翻译内容的语言文件:
https://downloads.playdeck.tv/4.2b6/PLAYDECK.sib

—————-

安装 PLAYDECK 和 SIL 编辑器,然后将 SIB 文件保存到此处:
c:\Users\Public\Documents\JoyEventMedia\Playdeck\PLAYDECK.sib

如果 PLAYDECK 在此位置检测到 SIB 文件,它将优先使用该文件,而非内部翻译。.


测试运行

让我们尝试编辑一些内容,并检查PLAYDECK是否会更新翻译。双击SIB文件,这将打开SIL编辑器。打开第一个分支“Tf_about”,它代表PLAYDECK中的“关于”弹出窗口。 点击“Captions”(标题),该选项代表弹出窗口中的所有静态文本字段。您可以收起所有不相关的语言列——在本例中,我专注于德语(也可以是任何其他语言)。 现在将“l_header”的翻译改为一个醒目的内容——在此示例中,我仅在文本前添加“XXX”以供测试。.

保存 SIB 文件(或按 CTRL+S)。在 PLAYDECK 中,转到“应用设置”并切换至“德语”:

重新启动 PLAYDECK 后,通过“许可证 > PLAYDECK”打开“关于”弹出窗口。此时应已显示您在文本编辑中进行的更改。测试完成后,请记得恢复原设置。如果此方法无效,请联系我们。.



从哪里开始

我们建议您先编辑所有动态文本,因为这些文本在PLAYDECK中会被反复使用,因此构成了“基础翻译”。您可以在“Tf_lang > Strings”下找到它们:

完成上述操作后,您可以自行决定:既可以在 PLAYDECK 中逐一查看所有“设置”和“弹出窗口”来查找需要修改的内容,也可以直接在 SIL 编辑器中逐一查看所有“弹出窗口”。.



方向与编辑

编辑器左侧显示了 PLAYDECK 中所有可能的弹出窗口。.

值得注意的是“主界面”(Main UI)和“设置”(所有设置)。这些又进一步分为若干组:

这些组具有以下含义(仅列出您需要的):

字幕: 弹出窗口中显示的所有静态文本,主要是标签、按钮和菜单
系列: 很少使用。仅限部分对话选项。.
扩展: 同样是静态文本,但主要是标题
提示: 鼠标悬停时显示的文本,例如“?”按钮或工具栏图标
多行: 支持多选的表格标题和下拉字段。双击即可编辑。.
其他: 很少使用。仅限部分对话选项。.
字符串: 动态文本块。仅用于“Tf_lang”

在用于编辑文本的巨大中间表格中,还有一列名为“字符串 ID”,它代表了 PLAYDECK 中相应元素的内部名称。在某些情况下,这“可能”有助于您查找内容。.

以下是关于命名的一些信息:
l_: 静态文本标签
b_ 或 mb_: 按钮
cb_: 带文本的复选框
rb_: 带文本的单选按钮
pm_: 弹出菜单或右键菜单
os_ 或 op_: 下拉菜单



编辑技巧

1) 请注意,其中存在若干重复内容(相同文本多次出现),这是无法避免的,例如当同一文本在 PLAYDECK 中多次出现时(如“设置”)。.

2) 有些文本也完全无法翻译,因为它们深埋在系统或视频引擎之中,而这些通常也是设置项(下拉菜单)。.

3) 您可以在编辑器中搜索任意文本,或点击列标题进行排序。这有助于定位英文原文,从而找到需要编辑的文本字段。.

4) 任何未提供翻译(字段为空)的内容将自动使用英文原文。因此,您可以删除该翻译,以强制 PLAYDECK 使用英文原文

5) 所有多行翻译的行数必须相同,否则 PLAYDECK 可能无法启动或无法正常运行。双击翻译内容即可进行多行编辑。.

6) 某些文本字段包含非常特定的字符,这些字符有助于在 PLAYDECK 中进行格式设置和提高可读性。这些字符是“<br>””(换行符)、” “(空格)、”:”或某些UTF-8图标。请注意这些符号,并注意删除它们可能会导致可读性下降。.

7) Most Languages have “lower” and “UPPER” case and some Translations (“Strings” in “Tf_lang”) provide both cases, if needed. For languages that don’t have “case”, use the same translation in both fields.


外部链接

您可以将PLAYDECK中的大部分链接更改为其他位置,例如支持邮箱地址,以及指向在线文档和其他网站的链接。.

您完全可以这样做。我们仅要求确保及时回复电子邮件,并确保网站链接正常且定期更新。.


外部内容

“入门指南”中的所有图片以及所有文档文件也都已翻译完毕。您可以在此处找到它们:
c:\Program Files (x86)\JoyEventMedia\Playdeck\lang

虽然没有绝对的紧迫性要求您替换或更新这些文件,但如果您愿意,也可以这样做。.

“GetStarted”文件夹中包含所有在“入门”对话框中显示的PNG图片:


“文档”文件夹中包含所有 TXT 文件,这些文件在 PLAYDECK 中会多次作为专家帮助被打开:

如果您决定更新这些文件,请不要更改文件名,并请以与原文件相同的格式发送给我们(PNG 文件需保持相同尺寸,TXT 文件需保持类似结构)。.