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リクエストを順番に 1 つずつ、即座に処理する
SerialFrameリクエストを順番に 1 つずつ、フレーム境界で処理する
Parallelリクエストを並行して処理する(順序は保証されない)

バッチのセマンティクス

注意: バッチは単体送信とは異なるセマンティクスを持ちます。OBS は結果の配列を含む 1 つの結合された結果を返し、各エントリには独自の成功状態・コード・コメントがあります。バッチ内ではリクエストごとのタイムアウトは存在しません

関連項目