Partilhar via


AppCaptureMetadataWriter Classe

Definição

Permite que um aplicativo armazene metadados que o sistema inserirá em arquivos de vídeo capturados ou transmitirá fluxos de conteúdo do aplicativo.

public ref class AppCaptureMetadataWriter sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Media.Capture.AppCaptureMetadataContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Media.Capture.AppCaptureMetadataContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class AppCaptureMetadataWriter final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Media.Capture.AppCaptureMetadataContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Media.Capture.AppCaptureMetadataContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class AppCaptureMetadataWriter : System.IDisposable
function AppCaptureMetadataWriter()
Public NotInheritable Class AppCaptureMetadataWriter
Implements IDisposable
Herança
Object Platform::Object IInspectable AppCaptureMetadataWriter
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows Desktop Extension SDK (introduzida na 10.0.16299.0)
API contract
Windows.Media.Capture.AppCaptureMetadataContract (introduzida na v1.0)

Comentários

Quando você cria uma instância de AppCaptureMetadataWriter, o sistema inicializa uma instância exclusiva para seu aplicativo e, em seguida, está pronto para você gravar itens de metadados. Embora apenas um aplicativo possa estar capturando ou transmitindo por vez, o sistema pode acumular metadados para vários aplicativos simultaneamente. AppCaptureMetadataWriter não inicia nem modifica o estado atual de captura ou difusão. Você deve criar e manter a instância de AppCaptureMetadataWriter , desde que queira que o sistema mantenha os metadados na memória. Quando a instância de AppCaptureMetadataWriter é liberada, todos os metadados associados a essa instância de AppCaptureMetadataWriter também são liberados.

Quando você escreve um item de metadados, o sistema associa um carimbo de data/hora ao item para que ele seja incluído automaticamente com o intervalo de tempo capturado ou de difusão ao qual ele se aplica.

Atualmente, há suporte para dois tipos diferentes de itens de metadados AppCaptureMetadataWriter: eventos e estado. Um evento de metadados é associado a um único ponto no tempo e geralmente é associado a uma ação instantânea, como um jogador em um jogo marcando um ponto. Um estado é um item de metadados que se aplica em uma janela de tempo. Um exemplo disso é um estado que contém o nome do mapa do jogo no qual um jogador está atualmente. Depois que um valor de estado tiver sido definido, o sistema manterá esse valor para o estado até que ele seja definido como um valor diferente, até que ele seja interrompido com uma chamada StopState ou até que todos os estados sejam encerrados com uma chamada para StopAllStates. Os eventos e os estados são representados como um par chave/valor em que a chave é o estado ou o nome do evento e o valor é um inteiro, um duplo ou um valor de cadeia de caracteres.

Quando a captura de aplicativo histórico está habilitada, o sistema acumula metadados gravados com AppCaptureMetadataWriter mesmo quando não captura ou difusão ativamente. Quando, por exemplo, uma captura dos 30 segundos anteriores é gravada em um arquivo de vídeo no disco, os metadados associados à janela de tempo gravada são incluídos no arquivo. O sistema impõe um limite ao espaço de armazenamento alocado por aplicativo para armazenar metadados acumulados. Você pode obter o espaço de armazenamento disponível no momento verificando a propriedade RemainingStorageBytesAvailable .

Quando todo o espaço alocado tiver sido preenchido, o sistema começará a limpar metadados usando o valor AppCaptureMetadataPriority , especificado quando os itens de metadados foram gravados e a idade de cada item para excluir os dados mais antigos e menos importantes primeiro. Quando isso ocorre, o evento MetadataPurged é gerado. Em resposta a esse evento, você pode optar por reduzir a quantidade de metadados que seu aplicativo está gravando, mas isso não é necessário.

Os itens de metadados são classificados como Importantes ou Informativos , conforme especificado com a enumeração AppCaptureMetadataPriority . Prioridade importante significa que os metadados serão carregados no serviço Xbox Live. Os metadados serão usados para ajudar os usuários a pesquisar clipes ou anotar transmissões, entre outras coisas. Os metadados importantes e informativos são inseridos no arquivo de .mp4 gerado, portanto, você não deve incluir nenhuma informação privada do usuário nos metadados.

Essa API poderá gerar um erro se o serviço em segundo plano tiver sido desligado devido ao tempo limite ocioso.

Construtores

AppCaptureMetadataWriter()

Inicializa uma nova instância da classe AppCaptureMetadataWriter .

Propriedades

RemainingStorageBytesAvailable

Obtém o número de bytes restantes no espaço de armazenamento alocado pelo sistema para itens de metadados de captura de aplicativo.

Métodos

AddDoubleEvent(String, Double, AppCaptureMetadataPriority)

Adiciona um novo evento de metadados duplos.

AddInt32Event(String, Int32, AppCaptureMetadataPriority)

Adiciona um novo evento de metadados de inteiro.

AddStringEvent(String, String, AppCaptureMetadataPriority)

Adiciona um novo evento de metadados de cadeia de caracteres.

Close()

Descarta o objeto e os recursos associados.

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

StartDoubleState(String, Double, AppCaptureMetadataPriority)

Adiciona um novo estado de metadados duplos.

StartInt32State(String, Int32, AppCaptureMetadataPriority)

Adiciona um novo estado de metadados duplos.

StartStringState(String, String, AppCaptureMetadataPriority)

Adiciona um novo estado de metadados duplos.

StopAllStates()

Interrompe todos os estados de metadados.

StopState(String)

Interrompe o estado dos metadados com o identificador especificado.

Eventos

MetadataPurged

Ocorre quando o sistema limpa itens de metadados armazenados anteriormente.

Aplica-se a