다음을 통해 공유


XAppCaptureStartUserRecord

사용자가 트리거한 것처럼 기록합니다. 녹화가 진행되는 동안 플레이어가 게임을 일시 중단/제한하면 녹화가 중지됩니다. 녹음/녹화는 사용자 파티션에 저장됩니다. 캡처 설정은 GameDVR 설정을 기반으로 합니다. 동시 기록 제한에 도달하면 다른 기록을 시작하기 전에 XAppCaptureStopUserRecord를 호출해야 합니다. 이 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가 특정 기록을 중지하려면 저장해야 합니다.

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 콘솔

참고 항목

XAppCapture 멤버