搜索

文档

当前位置:
首页
/
/
TCP API

TCP API

  • 分类:文档
  • 作者:
  • 来源:
  • 发布时间:2022-05-25 15:31
  • 访问量:

【概要描述】

TCP API

【概要描述】

  • 分类:文档
  • 作者:
  • 来源:
  • 发布时间:2022-05-25 15:31
  • 访问量:
详情

vMix TCP API提供与HTTP WEB API相同的功能,但具有较低的处理开销,这使得它适合在XML解析能力有限的嵌入式设备中使用。

它还提供了订阅将自动向客户端发送TALLY更新的TALLY事件的能力。

 

前言

vMix TCP API被设计成一个简单的协议,可以在未来进行扩展,而不会破坏与现有客户机的兼容性。

因此,它采用了一个简单的文本命令/响应体系结构,类似于其他标准协议(如SMTP)。

因此,避免了固定长度的二元结构。

这些符<>本规范中的符号表示强制命令/响应,而[]总是可选的。

 

连接

固定端口8099上的TCP连接

 

格式化

所有消息都是UTF8编码的,除非另有说明,否则将终止。

对于绝大多数命令,这只与ASCII设备兼容,但可能检索不兼容字符(如title)的命令除外。

 

反应

响应是空格分隔的\r\n终止字符串,带有可选的二进制数据,格式如下:

       <command> <status/length> [response]\r\n

       [data]

例子:

这是对MYCOMMAND\r\n的响应

这是响应MYCOMMAND\r\n的错误消息

MYCOMMAND 28 \ r \ n

这是可选的二进制数据

这是除二进制数据外的消息\r\n

这是可选的二进制数据

 

注:

a.可选二进制数据为status/length&gt中指定的确切长度;包括额外的终止字符,如\r\n它总是被追加到多行文本的末尾,比如XMLTEXT。

b.应该总是期望和处理像ER这样的单行响应,即使对于通常返回二进制数据的命令也是如此。

c. OK (Success), ER (Error)和length是仅有的三个预期状态。

 

事件

事件是可以在任何时候发送到客户端的响应,以响应状态的变化。

所有的客户端都应该在任何时候处理任何响应,因为这些可能在发送命令的过程中收到,但在发送命令之前

接收特定的命令响应。因此,建议客户端“异步”操作,无需等待特定的命令响应。

 

命令

统计

活动支持:是的

示例请求:统计\ r \ n

示例响应:TALLY OK 0121

描述:返回一个计数值列表,其中0 = off, 1 = program, 2 = preview。

该列表被填充到当前添加到vMix的输入总数,结果可能有多达1000个条目。

(可能长度= 9 + 1000 + 2 = 1011字节)

 

函数

格式:FUNCTION <Function> [QueryString]\r\n

示例请求:FUNCTION PreviewInput Input=5\r\n

请求示例:FUNCTION SetText Input=3&SelectedName=Headline&Value=Hello world\r\n

示例响应:FUNCTION OK PreviewInput\r\n

示例响应:FUNCTION ER错误消息\r\n

描述:调用带有可选查询字符串的快捷函数。这个查询字符串与语法完全匹配

以及HTTP WEB API的布局。应该使用标准的URL转义/编码字符。

 

ACTS

活动支持:是的

格式:ACTS <ActivatorName> [InputNumber]\r\n

请求示例:ACTS输入1\r\n

响应:ACTS OK输入1 1 1\r\n

描述:检索激活器的当前状态。即使vMix中没有添加特定的激活器,也可以使用它,而且很方便

用于检索用于自定义控制器的状态信息。

要订阅所有激活器事件,请使用subscribe ACTS命令。这将检索所有事件

因为不可能只订阅特定的激活器。

input number可以为input, InputPreview和Overlay1,2,3,4保留空白,以显示当前分配的输入,如果有,否则将返回ER No input。

返回值总是在0到1之间。与XML输出相反,这意味着布尔值True/False变成1/0,像Volume这样的整数值变成32位浮点值。

 

XML

示例请求:XML \ r \ n

响应:XML 37\r\n

<vmix><version>x.x.x.x</version></vmix>

描述:以UTF-8格式编码的二进制数据返回当前XML状态。

数据长度没有大小限制,可以非常大,因此嵌入式设备应该使用下面的XML解析命令来有效地检索值。

 

XMLTEXT

格式:XMLTEXT XPATH

请求示例:XMLTEXT vmix/inputs/input[1]/@title\r\n

这是一个输入的标题\r\n

请求示例:XMLTEXT vmix/inputs/input[6]/text[@name='Headline']\r\n

这是标题输入中标题文本字段的值,它是数字6(索引5)输入

描述:使用XPATH语法检索XML状态的单个文本值。

为了简化解析,多行文本将使用状态长度,而单行数据将始终使用单行响应。

 

订阅

格式:SUBSCRIBE <COMMAND>\r\n

请求示例:SUBSCRIBE TALLY\r\n

响应示例:SUBSCRIBE OK TALLY\r\n

描述:订阅事件/命令。匹配所选命令的事件响应可以立即开始,甚至在接收到SUBSCRIBE响应之前。

事件响应将继续接收,直到调用a. UNSUBSCRIBE或b.连接关闭。

 

退订

格式: UNSUBSCRIBE <COMMAND>\r\n

请求示例:UNSUBSCRIBE TALLY\r\n

回复:UNSUBSCRIBE OK TALLY\r\n

说明:由于vMix中的内部事件队列,事件响应可能在调用UNSUBSCRIBE命令后继续短暂接收。

 

关闭

描述:关闭连接

上一个: 自定义XAML
下一个: HTTP WEB API
上一个: 自定义XAML
下一个: HTTP WEB API

新浪微博

关注@vMixchina

VMIX

官方微信公众号

VMIX

新浪微博

关注@vMixhd

官方微信公众号

gotop