Partilhar via


MediaFrameReference Classe

Definição

Uma classe wrapper que representa um quadro obtido de um MediaFrameSource. Use as propriedades dessa classe para acessar o tipo de quadro específico fornecido pela origem, como VideoMediaFrame ou BufferMediaFrame.

public ref class MediaFrameReference sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MediaFrameReference final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MediaFrameReference : System.IDisposable
Public NotInheritable Class MediaFrameReference
Implements IDisposable
Herança
Object Platform::Object IInspectable MediaFrameReference
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 Anniversary Edition (introduzida na 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v3.0)

Comentários

Para obter uma instância de MediaFrameReference de uma fonte de quadro de mídia, crie um MediaFrameReader chamando CreateFrameReaderAsync em um objeto MediaCapture que foi inicializado para usar a fonte de quadro de mídia desejada. Depois que o leitor de quadros tiver sido iniciado chamando StartAsync, chame TryAcquireLatestFrame para obter um MediaFrameReference representando o quadro mais recente da origem do quadro de mídia.

Cada MediaFrameReader mantém um buffer circular de objetos MediaFrameReference obtidos de TryAcquireLatestFrame. Depois que todos os objetos MediaFrameReference no buffer tiverem sido usados, as chamadas subsequentes para TryAcquireLatestFrame farão com que o sistema chame Close (ou Dispose em C#) no objeto buffer mais antigo para reutilizá-lo. Depois que o objeto for descartado, você não poderá mais usá-lo para acessar os dados do quadro. Por esse motivo, você não deve armazenar o objeto MediaFrameReference por mais tempo do que realmente precisa para processar o quadro. Se o cenário do aplicativo exigir que você mantenha uma referência aos dados por mais tempo, use uma das APIs fornecidas para obter os dados subjacentes. Estão incluídos:

É responsabilidade do aplicativo chamar Close (ou Dispose) nos objetos retornados por essas APIs quando eles não estão mais sendo usados.

Importante

Se você acessar os objetos SoftwareBitmap ou Direct3DSurface fornecidos pela propriedade VideoMediaFrame de um MediaFrameReference, o sistema criará uma forte referência a esses objetos, o que significa que eles não serão descartados quando você chamar Dispose no MediaFrameReference que contém. Isso também se aplica aos objetos SoftwareBitmap ou Direct3DSurface fornecidos pelo objeto VideoFrame que você obtém da propriedade MediaFrameReference.VideoMediaFrame . Você deve chamar explicitamente o método Dispose do SoftwareBitmap ou Direct3DSurface diretamente para os objetos serem descartados imediatamente. Caso contrário, o coletor de lixo acabará liberando a memória para esses objetos, mas você não saberá quando isso vai ocorrer, e se o número de bitmaps ou superfícies alocados exceder o valor máximo permitido pelo sistema, o fluxo de quadros novos será interrompido.

Para obter diretrizes sobre como usar o MediaFrameSource para capturar quadros, consulte Processar quadros de mídia com MediaFrameReader.

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
1803 17134 AudioMediaFrame

Propriedades

AudioMediaFrame

Obtém o AudioMediaFrame encapsulado pelo MediaFrameReference, se esse for o tipo de quadro representado.

BufferMediaFrame

Obtém o BufferMediaFrame encapsulado pelo MediaFrameReference, se esse for o tipo de quadro representado.

CoordinateSystem

Obtém o sistema de coordenadas espaciais para o quadro de mídia referenciado, se um for definido.

Duration

Obtém a duração do quadro de mídia referenciado.

Format

Obtém o formato do quadro de mídia de referência.

Properties

Obtém um mapa de propriedades para o quadro referenciado.

SourceKind

Obtém o tipo de MediaFrameSource do qual o quadro referenciado se originou, como uma cor, infravermelho ou fonte personalizada.

SystemRelativeTime

Obtém um carimbo de data/hora relativo ao sistema e é correlacionado entre várias fontes de mídia no mesmo dispositivo.

VideoMediaFrame

Obtém o VideoMediaFrame encapsulado pelo MediaFrameReference, se esse for o tipo de quadro representado.

Métodos

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.

Aplica-se a

Confira também