MediaFrameReference Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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. |