> ## 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.

# XAppCaptureOpenScreenshotStream

> XAppCaptureOpenScreenshotStream

# XAppCaptureOpenScreenshotStream

Abre um fluxo de captura de tela.

## Sintaxe

```cpp theme={null}
HRESULT XAppCaptureOpenScreenshotStream(  
         const char* localId,  
         XAppCaptureScreenshotFormatFlag screenshotFormat,  
         XAppCaptureScreenshotStreamHandle* handle,  
         uint64_t* totalBytes  
)  
```

### Parâmetros

*localId*   \_In\_\
Tipo: char\*

ID local da captura de tela retornada em [XAppCaptureTakeScreenshotResult](https://docs.xbox.com/pt-BR/reference/system/xappcapture/structs/xappcapturetakescreenshotresult.md) após chamar [XAppCaptureTakeScreenshot](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturetakescreenshot.md).

*screenshotFormat*   \_In\_\
Tipo: [XAppCaptureScreenshotFormatFlag](https://docs.xbox.com/pt-BR/reference/system/xappcapture/enums/xappcapturescreenshotformatflag.md)

Sinalizador de formato da captura de tela retornado em [XAppCaptureTakeScreenshotResult](https://docs.xbox.com/pt-BR/reference/system/xappcapture/structs/xappcapturetakescreenshotresult.md) após chamar [XAppCaptureTakeScreenshot](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturetakescreenshot.md).

*handle*   \_Out\_\
Tipo: XAppCaptureScreenshotStreamHandle\*

Identificador do fluxo de captura de tela retornado como resultado da abertura do fluxo.

*totalBytes*   \_Out\_opt\_\
Tipo: uint64\_t\*

Número total de bytes no fluxo.

### Valor retornado

Tipo: HRESULT

Resultado da função.

## Comentários

> [!NOTE]
>
> Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, confira [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).

As capturas de tela não podem ser acessadas a partir da partição do jogo; portanto, você deve abrir um fluxo para recuperar as capturas de tela feitas pelo usuário ou com [XAppCaptureTakeScreenshot](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturetakescreenshot.md). [XAppCaptureTakeScreenshot](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturetakescreenshot.md) retorna uma *localID* em seu resultado, que é usada nesta função para recuperar a captura de tela correta. A *localID* será válida enquanto a captura de tela for mantida no disco. Há apenas uma quantidade limitada de espaço no console para armazenar capturas de tela. As capturas de tela mais antigas serão excluídas quando o espaço reservado estiver cheio. Isso pode fazer com que a função de abertura de captura de tela não encontre uma localID. Depois de abrir o fluxo, você pode ler a captura de tela com [XAppCaptureReadScreenShotStream](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md). Por fim, todo fluxo precisa ser fechado com [XAppCaptureCloseScreenshotStream](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream.md) para evitar um vazamento de memória.

```cpp theme={null}
XAppCaptureTakeScreenshotResult takeScreenshotResult = {0};
XAppCaptureScreenshotStreamHandle handle = nullptr;
UINT64 totalBytesToRead = 0;
XAppCaptureScreenshotFormatFlag screenshotFormat = XAppCaptureScreenshotFormatFlag::SDR;
bool hdrAvailable = false;

/* ... obtain takeScreenshotResult with XAppCaptureTakeScreenshot. Refer to corresponding documentation ... */

hdrAvailable = static_cast<bool>(takeScreenshotResult.availableScreenshotFormats & XAppCaptureScreenshotFormatFlag::HDR);

/* Note: It is optional to obtain the HDR screenshot, if HDR is available. You will need to call XAppCaptureOpenScreenshotStream twice to obtain both SDR and HDR screenshots */
if (hdrAvailable)
{
    screenshotFormat = XAppCaptureScreenshotFormatFlag::HDR;
}

if (FAILED_LOG(XAppCaptureOpenScreenshotStream(takeScreenshotResult.localId, screenshotFormat, &handle, &totalBytesToRead)))
{
    return;
}

appLog.AddLog("%I64d bytes returned\n", totalBytesToRead);

/* You must always call XAppCaptureCloseScreenshotStream on an open XAppCaptureScreenshotStreamHandle to avoid a memory leak */
if (handle != nullptr)
{
    XAppCaptureCloseScreenshotStream(handle);
}

```

## Requisitos

**Cabeçalho:** XAppCapture.h

**Biblioteca:** xgameruntime.lib

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

## Documentação conceitual

* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

[Visão geral do GameDVR](https://docs.xbox.com/pt-BR/build/console-features/game-dvr/gamedvr-broadcast.md)\
[Membros de XAppCapture](https://docs.xbox.com/pt-BR/reference/system/xappcapture/xappcapture_members.md)\
[XAppCaptureReadScreenShotStream](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md)\
[XAppCaptureTakeScreenshot](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturetakescreenshot.md)\
[XAppCaptureCloseScreenshotStream](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream.md)


## Related topics

- [XAppCaptureScreenshotStream](https://docs.xbox.com/pt-BR/reference/system/xappcapture/structs/xappcapturescreenshotstream.md)
- [XAppCaptureReadScreenshotStream](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md)
- [XAppCapture (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xappcapture/xappcapture_members.md)
- [Usar wrappers C# para APIs do GDK no seu projeto do Unity](https://docs.xbox.com/pt-BR/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XAppCaptureCloseScreenshotStream](https://docs.xbox.com/pt-BR/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream.md)
