ユーザーがトリガーしたかのようにレコーディングします。 記録の進行中にプレイヤーがゲームを中断/抑制した場合、その記録は停止されます。 記録はユーザー パーティションに保存されます。 キャプチャ設定は GameDVR の設定に基づきます。 同時レコーディング数の上限に達したら、 他のレコーディングを開始する前に、XAppCaptureStopUserRecord または XAppCaptureCancelUserRecord を呼び出す必要があります。 この API の Windows サポートは、将来のリリースで追加される予定です。
構文
HRESULT XAppCaptureStartUserRecord(
XUserHandle requestingUser,
uint32_t localIdBufferLength,
char* localIdBuffer
)
パラメーター
requestingUser _In_
型: XUserHandle
レコーディングを要求しているユーザーを表すハンドル。
localIdBufferLength _In_
型: uint32_t
ローカル レコーディング ID を受け取るバッファーの長さ。
localIdBuffer _Out_
型: char*
進行中のレコーディング操作を指定するローカル ID を含むバッファー。
戻り値
型: HRESULT
関数の結果です。
S_OK 以外の戻り値については、「XAppCapture エラー コード」を参照してください。
解説
関数が正常に完了すると、localIdOfUserRecording にはレコーディングのローカル ID が格納され、XAppCaptureStopUserRecord または XAppCaptureCancelUserRecord を使用して特定のレコーディングを停止するには、その ID を格納しておく必要があります。
注意
割り当てられたスペースがいっぱいになると、新しいクリップのためのスペースを確保するために以前のクリップが削除されます。 PLS (永続ローカル ストレージ)、接続ストレージ ( XGameSave または XGameSaveFiles など)、または同様のストレージ システムを使用して、クリップを一定の期間保持できます。
char localIdOfUserRecording[APPCAPTURE_MAX_LOCALID_LENGTH] = { '\0' };
XAppCaptureVideoCaptureSettings captureSettings = { 0 };
if (FAILED_LOG(XAppCaptureGetVideoCaptureSettings(&captureSettings)))
{
return;
}
if (captureSettings.isCaptureByGamesAllowed)
{
auto asyncBlock = std::make_unique<XAsyncBlock>();
ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
asyncBlock->queue = g_taskQueue;
asyncBlock->callback = [](XAsyncBlock* ab)
{
auto asyncBlock = std::unique_ptr<XAsyncBlock>(ab);
XUserHandle user = nullptr;
auto scopeExit = wil::scope_exit([&]()
{
if (user != nullptr)
{
XUserCloseHandle(user);
}
});
if (FAILED_LOG(XUserAddResult(asyncBlock.get(), &user)))
{
return;
}
if (FAILED_LOG(XAppCaptureStartUserRecord(user, ARRAYSIZE(localIdOfUserRecording), localIdOfUserRecording)))
{
return;
}
appLog.AddLog("Recording started: localId = %s\n", localIdOfUserRecording);
};
if (SUCCEEDED_LOG(XUserAddAsync(
XUserAddOptions::AddDefaultUserAllowingUI,
asyncBlock.get())))
{
// Once started, release the pointer
asyncBlock.release();
}
}
要件
ヘッダー: XAppCapture.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Xbox One ファミリ本体と Xbox Series 本体