API 规范#
Ingress#
gRPC API#
动画图微服务可以接受来自动画数据源(例如 Audio2Face)的输入动画数据流。此动画数据流通过 PushAnimationDataStream 远程过程调用 (RPC) 提供。然后,动画图混合最终动画并生成新的动画数据流,该数据流可以流式传输到下游渲染器。这些渲染器通过 PullAnimationDataStream RPC 连接到动画图微服务渲染器。这两个 RPC 都在 动画数据服务 中定义。
动画数据流音频格式#
动画图微服务目前仅支持具有以下音频格式的动画数据流。
格式 |
PCM |
通道数 |
1 |
采样率 |
16000 Hz |
每样本位数 |
16 |
HTTP API#
除了动画数据流 API 之外,动画图微服务还公开了一个 HTTP API。通过此 API,您可以
控制动画图变量的值,例如控制默认动画图的姿势和手势。
向微服务添加和删除活动流。
您可以在 HTTP API 文档中找到更多信息。
一旦微服务启动,就可以在 http://127.0.0.1:8020/docs 访问交互式 HTTP API 概述。
动画图变量控制#
请注意,HTTP API 路由在动画图微服务启动时动态生成。它从 USD 场景文件中加载 自定义图层数据,并相应地生成端点路径。
因此,微服务公开的 HTTP API 取决于 USD 场景文件中包含的动画图变量配置。此处提供了 默认动画图 的 HTTP API 文档作为参考。
有关更改动画图变量的示例 API 调用,请参阅 默认动画图部分。
流管理#
动画图微服务是一个有状态的服务,仅在流注册了流 ID 后才生成输出动画数据流。
可以使用以下方式添加动画数据流
stream_id=$(uuidgen)
curl -X POST -s http://127.0.0.1:8020/streams/$stream_id
同样,可以使用以下方式删除动画数据流
curl -X DELETE -s http://127.0.0.1:8020/streams/$stream_id