Compartir a través de


MediaFrameReference Clase

Definición

Clase contenedora que representa un marco obtenido de un objeto MediaFrameSource. Use las propiedades de esta clase para tener acceso al tipo de fotograma específico proporcionado por el origen, como VideoMediaFrame o 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
Herencia
Object Platform::Object IInspectable MediaFrameReference
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10 Anniversary Edition (se introdujo en la versión 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v3.0)

Comentarios

Para obtener una instancia de MediaFrameReference desde un origen de fotogramas multimedia, cree un objeto MediaFrameReader llamando a CreateFrameReaderAsync en un objeto MediaCapture que se haya inicializado para usar el origen de fotograma multimedia deseado. Una vez iniciado el lector de fotogramas llamando a StartAsync, llame a TryAcquireLatestFrame para obtener una clase MediaFrameReference que represente el fotograma más reciente del origen del marco multimedia.

Cada Objeto MediaFrameReader mantiene un búfer circular de objetos MediaFrameReference obtenidos de TryAcquireLatestFrame. Una vez usados todos los objetos MediaFrameReference del búfer, las llamadas posteriores a TryAcquireLatestFrame harán que el sistema llame a Close (o Dispose en C#) en el objeto de búfer más antiguo para reutilizarlo. Una vez eliminado el objeto, ya no se puede usar para acceder a los datos de la trama. Por este motivo, no debe almacenar el objeto MediaFrameReference más tiempo de lo que realmente necesita para procesar el marco. Si el escenario de la aplicación requiere que mantenga una referencia a los datos durante más tiempo, debe usar una de las API proporcionadas para obtener los datos subyacentes. Se incluyen los siguientes:

Es responsabilidad de la aplicación llamar a Close (o Dispose) en los objetos devueltos por estas API cuando ya no se usan.

Importante

Si tiene acceso a los objetos SoftwareBitmap o Direct3DSurface proporcionados por la propiedad VideoMediaFrame de una clase MediaFrameReference, el sistema crea una referencia fuerte a estos objetos, lo que significa que no se eliminarán al llamar a Dispose en la clase MediaFrameReference contenedora. Esto también se aplica a los objetos SoftwareBitmap o Direct3DSurface proporcionados por el objeto VideoFrame que se obtiene de la propiedad MediaFrameReference.VideoMediaFrame . Se debe llamar explícitamente al método Dispose de SoftwareBitmap o Direct3DSurface directamente para los objetos que deben eliminarse inmediatamente. De lo contrario, el recolector de elementos no usados al final liberará la memoria de estos objetos, pero no se puede saber cuando ocurrirá, y si el número de superficies o mapas de bits asignados supera la cantidad máxima permitida por el sistema, el nuevo flujo de fotogramas se detendrá.

Para obtener instrucciones paso a paso sobre el uso de MediaFrameSource para capturar fotogramas, consulte Procesar fotogramas multimedia con MediaFrameReader.

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
1803 17134 AudioMediaFrame

Propiedades

AudioMediaFrame

Obtiene el objeto AudioMediaFrame encapsulado por MediaFrameReference, si es el tipo de marco representado.

BufferMediaFrame

Obtiene el bufferMediaFrame ajustado por MediaFrameReference, si es el tipo de marco representado.

CoordinateSystem

Obtiene el sistema de coordenadas espaciales para el marco multimedia al que se hace referencia, si se define uno.

Duration

Obtiene la duración del marco multimedia al que se hace referencia.

Format

Obtiene el formato del marco multimedia de referencia.

Properties

Obtiene un mapa de propiedades para el marco al que se hace referencia.

SourceKind

Obtiene el tipo de MediaFrameSource del que se originó el marco al que se hace referencia, como un color, un infrarrojo o un origen personalizado.

SystemRelativeTime

Obtiene una marca de tiempo relativa al sistema y se correlaciona entre varios orígenes multimedia del mismo dispositivo.

VideoMediaFrame

Obtiene el videoMediaFrame ajustado por MediaFrameReference, si es el tipo de marco representado.

Métodos

Close()

Elimina el objeto y los recursos asociados.

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.

Se aplica a

Consulte también