MediaFrameReference Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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. |