リクエストのバッチ処理
複数の 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 | リクエストを順番に 1 つずつ、即座に処理する |
SerialFrame | リクエストを順番に 1 つずつ、フレーム境界で処理する |
Parallel | リクエストを並行して処理する(順序は保証されない) |
バッチのセマンティクス
注意: バッチは単体送信とは異なるセマンティクスを持ちます。OBS は結果の配列を含む 1 つの結合された結果を返し、各エントリには独自の成功状態・コード・コメントがあります。バッチ内ではリクエストごとのタイムアウトは存在しません。