请求批处理
当你需要同时发送多条 OBS 命令时,FOBSRequestBatchBuilder 流式 API 可将它们打包成一次批处理请求。这比逐条发送请求更高效,同时允许你控制执行顺序与失败处理策略。
基本用法
链式调用所需命令,最后调用 Execute():
FOBSRequestBatchBuilder::Create(OBSClient)
.SetCurrentProgramScene("Gaming")
.StartRecord()
.SetInputMute("Mic/Aux", false)
.Execute();
使用回调与选项
如需完全控制,可添加原始请求、设置执行选项,并在回调中接收每条请求的结果:
FOBSRequestBatchBuilder::Create(OBSClient)
.AddRequest("GetSceneList")
.AddRequest("GetInputList")
.HaltOnFailure(true)
.SetExecutionType(EOBSRequestBatchExecutionType::SerialRealtime)
.ExecuteWithCallback([](const FOBSBatchResult& Result) {
for (const auto& SingleResult : Result.Results)
{
// Handle individual results
}
});
执行类型
EOBSRequestBatchExecutionType 控制 OBS 处理批处理的方式:
| 类型 | 描述 |
|---|---|
SerialRealtime | 按顺序逐条处理请求,立即执行 |
SerialFrame | 按顺序逐条处理请求,在帧边界执行 |
Parallel | 并发处理请求(不保证顺序) |
批处理语义
注意: 批处理与单条发送具有不同的语义。OBS 返回一个包含结果数组的组合结果,每个条目拥有独立的成功状态、状态码和注释。批处理内部不存在单条请求的超时机制。