Partilhar via


MultiSourceMediaFrameReference Classe

Definição

Uma classe wrapper que fornece acesso a quadros correlacionados com o tempo obtidos de um ou mais objetos MediaFrameSource . Chame TryGetFrameReferenceBySourceId para obter o MediaFrameReference que representa um quadro de uma fonte de quadro de mídia específica.

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

Requisitos do Windows

Família de dispositivos
Windows 10 Creators Update (introduzida na 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v4.0)

Comentários

Para obter uma instância de MultiSourceMediaFrameReference de uma fonte de quadro de mídia, crie um MultiSourceMediaFrameReader chamando CreateMultiSourceFrameReaderAsync em um objeto MediaCapture , passando os objetos MediaFrameSource dos quais você deseja ler. Depois de começar chamando StartAsync, chame TryAcquireLatestFrame para obter um MultiSourceMediaFrameReference que contém os quadros correlacionados mais recentes das fontes de quadro de mídia.

Obtenha o quadro de mídia correlacionado com o tempo de uma fonte de quadro de mídia específica chamando MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId e passando o valor da propriedade MediaFrameSourceInfo.Id para a fonte de quadro de mídia desejada.

Cada MultiSourceMediaFrameReader mantém um buffer circular de objetos MediaFrameReference obtidos de MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId. 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 de buffer mais antigo para reutilizá-lo. Depois que o objeto tiver sido 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. Esses métodos incluem:

Importante

Se você acessar a propriedade SoftwareBitmap ou Direct3DSurface fornecidas pela propriedade VideoMediaFrame de uma 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 na MediaFrameReference contida. 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 MediaFrameSource para capturar quadros, consulte Processar quadros de mídia com MediaFrameReader.

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.

TryGetFrameReferenceBySourceId(String)

Tenta obter um MediaFrameReference correlacionado por tempo para a origem do quadro de mídia especificada.

Aplica-se a

Confira também