> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XAppCaptureStartUserRecord

> XAppCaptureStartUserRecord

# XAppCaptureStartUserRecord

Grava como se o usuário a tivesse disparado. Se o jogador suspender/restringir o jogo enquanto uma gravação estiver em andamento, a gravação será interrompida. A gravação é salva na partição do usuário. As configurações de captura se baseiam nas configurações do GameDVR. Depois que o limite de gravações simultâneas for atingido, será necessário chamar [XAppCaptureStopUserRecord](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturestopuserrecord.md) ou [XAppCaptureCancelUserRecord](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturecanceluserrecord.md) antes que outra gravação possa ser iniciada. O suporte do Windows para esta API será adicionado em uma versão futura.

## Sintaxe

```cpp theme={null}
HRESULT XAppCaptureStartUserRecord(
    XUserHandle requestingUser,
    uint32_t localIdBufferLength,
    char* localIdBuffer
)
```

### Parâmetros

*requestingUser* \_In\_\
Tipo: XUserHandle

Identificador que representa o usuário que está solicitando a gravação.

*localIdBufferLength* \_In\_\
Tipo: uint32\_t

O comprimento do buffer que recebe a ID local da gravação.

*localIdBuffer* \_Out\_\
Tipo: char\*

Buffer que contém a ID local que especifica a operação de gravação em andamento.

### Valor retornado

Tipo: HRESULT

Resultado da função. Consulte [Códigos de erro de XAppCapture](https://docs.xbox.com/pt-BR/reference/system/xappcapture/xappcapture_errors.md) para valores retornados diferentes de `S_OK`.

## Comentários

Na conclusão bem-sucedida da função, localIdOfUserRecording contém a ID local da gravação, que deve ser armazenada para interromper uma gravação específica com [XAppCaptureStopUserRecord](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturestopuserrecord.md) ou [XAppCaptureCancelUserRecord](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturecanceluserrecord.md).

> [!NOTE]
>
> Os clipes mais antigos serão excluídos quando o espaço alocado estiver cheio, para abrir espaço para novos clipes. Use [PLS](https://docs.xbox.com/pt-BR/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members.md) (Persistent Local Storage), o armazenamento conectado (por exemplo, [XGameSave](https://docs.xbox.com/pt-BR/reference/system/xgamesave/xgamesave_members.md) ou [XGameSaveFiles](https://docs.xbox.com/pt-BR/reference/system/xgamesavefiles/xgamesavefiles_members.md)) ou um sistema de armazenamento semelhante para reter clipes por um período de tempo definido.

```cpp theme={null}
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();
    }
}
```

## Requisitos

**Cabeçalho:** XAppCapture.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatíveis:** consoles da família XBOX One e consoles XBOX Series

## Confira também

[Membros de XAppCapture](https://docs.xbox.com/pt-BR/reference/system/xappcapture/xappcapture_members.md)


## Related topics

- [XAppCaptureCancelUserRecord](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturecanceluserrecord.md)
- [XAppCaptureUserRecordingResult](https://docs.xbox.com/pt-BR/reference/system/xappcapture/structs/xappcaptureuserrecordingresult.md)
- [XAppCaptureStopUserRecord](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturestopuserrecord.md)
- [XAppCapture (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xappcapture/xappcapture_members.md)
- [XAppCaptureRecordTimespan](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturerecordtimespan.md)
