Skip to content

Desuq Cafe

文档菜单

此翻译可能落后于最新的英文版本。 查看英文版

请求批处理

当你需要同时发送多条 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 返回一个包含结果数组的组合结果,每个条目拥有独立的成功状态、状态码和注释。批处理内部不存在单条请求的超时机制。

另请参阅