MultiSourceMediaFrameReference 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 proporciona acceso a fotogramas correlacionados con tiempo obtenidos de uno o varios objetos MediaFrameSource . Llame a TryGetFrameReferenceBySourceId para obtener la clase MediaFrameReference que representa un fotograma de un origen de fotogramas multimedia determinado.
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
- Herencia
- Atributos
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows 10 Creators Update (se introdujo en la versión 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v4.0)
|
Comentarios
Para obtener una instancia de MultiSourceMediaFrameReference desde un origen de fotogramas multimedia, cree un objeto MultiSourceMediaFrameReader llamando a CreateMultiSourceFrameReaderAsync en un objeto MediaCapture , pasando los objetos MediaFrameSource desde los que desea leer. Después de comenzar llamando a StartAsync, llame a TryAcquireLatestFrame para obtener un MultiSourceMediaFrameReference que contiene los fotogramas correlacionados más recientes de los orígenes de fotogramas multimedia.
Obtenga el marco multimedia correlacionado con el tiempo de un origen de fotograma multimedia determinado mediante una llamada a MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId y pasando el valor de la propiedad MediaFrameSourceInfo.Id para el origen de fotogramas multimedia deseado.
Cada objeto MultiSourceMediaFrameReader mantiene un búfer circular de objetos MediaFrameReference obtenidos de MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId. Después de usar 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 fotogramas. Por este motivo, no debe almacenar el objeto MediaFrameReference más tiempo que el que realmente necesita para procesar el fotograma. 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. Esos métodos incluyen:
- BufferMediaFrame.Buffer
- VideoMediaFrame.SoftwareBitmap
- VideoMediaFrame.GetVideoFrame
- VideoMediaFrame.CameraIntrinsics 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 accedes 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 cuando se llamae a Dispose en la clase MediaFrameReference contenedora. 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 de procedimientos sobre el uso de MediaFrameSource para capturar fotogramas, consulte Procesamiento de fotogramas multimedia con MediaFrameReader.
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. |
TryGetFrameReferenceBySourceId(String) |
Intenta obtener una clase MediaFrameReference correlacionada con el tiempo para el origen de fotogramas multimedia especificado. |