MediaFrameReference Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe wrapper che rappresenta un frame ottenuto da MediaFrameSource. Usare le proprietà di questa classe per accedere al tipo di frame specifico fornito dall'origine, ad esempio 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
- Ereditarietà
- Attributi
- Implementazioni
Requisiti Windows
Famiglia di dispositivi |
Windows 10 Anniversary Edition (è stato introdotto in 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v3.0)
|
Commenti
Per ottenere un'istanza di MediaFrameReference da un'origine fotogramma multimediale, creare un MediaFrameReader chiamando CreateFrameReaderAsync su un oggetto MediaCapture inizializzato per usare l'origine fotogramma multimediale desiderata. Dopo l'avvio del lettore di fotogrammi chiamando StartAsync, chiama TryAcquireLatestFrame per ottenere un Oggetto MediaFrameReference che rappresenta il fotogramma più recente dall'origine del fotogramma multimediale.
Ogni MediaFrameReader mantiene un buffer circolare di oggetti MediaFrameReference ottenuti da TryAcquireLatestFrame. Dopo l'uso di tutti gli oggetti MediaFrameReference nel buffer, le chiamate successive a TryAcquireLatestFrame causeranno la chiamata di Close (o Dispose in C#) nell'oggetto buffer meno recente per riutilizzarla. Dopo aver eliminato l'oggetto, non è più possibile usarlo per accedere ai dati del frame. Per questo motivo, non è consigliabile archiviare l'oggetto MediaFrameReference più a lungo del necessario per elaborare il frame. Se lo scenario dell'app richiede di mantenere un riferimento ai dati per più tempo, è consigliabile usare una delle API fornite per ottenere i dati sottostanti. Queste includono:
È responsabilità dell'app chiamare Close (o Dispose) sugli oggetti restituiti da queste API quando non vengono più usati.
Importante
Se si accede agli oggetti SoftwareBitmap o Direct3DSurface forniti dalla proprietà VideoMediaFrame di un Oggetto MediaFrameReference, il sistema crea un riferimento sicuro a questi oggetti, il che significa che non verranno eliminati quando si chiama Dispose sull'oggetto MediaFrameReference contenitore. Questo vale anche per gli oggetti SoftwareBitmap o Direct3DSurface forniti dall'oggetto VideoFrame ottenuto dalla proprietà MediaFrameReference.VideoMediaFrame . Devi chiamare in modo esplicito direttamente il metodo Dispose di SoftwareBitmap o Direct3DSurface perché gli oggetti vengano eliminati immediatamente. In caso contrario, Garbage Collector finirà per liberare la memoria per questi oggetti, ma non saprai quando e se il numero di bitmap o superfici allocate supera la quantità massima consentita dal sistema, il flusso di nuovi fotogrammi si arresterà.
Per indicazioni sull'uso di MediaFrameSource per acquisire fotogrammi, vedere Elaborare fotogrammi multimediali con MediaFrameReader.
Cronologia delle versioni
Versione di Windows | Versione dell'SDK | Valore aggiunto |
---|---|---|
1803 | 17134 | AudioMediaFrame |
Proprietà
AudioMediaFrame |
Ottiene l'oggetto AudioMediaFrame di cui è stato eseguito il wrapping da MediaFrameReference, se è il tipo di frame rappresentato. |
BufferMediaFrame |
Ottiene l'oggetto BufferMediaFrame di cui è stato eseguito il wrapping da MediaFrameReference, se è il tipo di frame rappresentato. |
CoordinateSystem |
Ottiene il sistema di coordinate spaziali per il frame multimediale di riferimento, se definito. |
Duration |
Ottiene la durata del fotogramma multimediale a cui si fa riferimento. |
Format |
Ottiene il formato del frame multimediale di riferimento. |
Properties |
Ottiene una mappa delle proprietà per la cornice a cui si fa riferimento. |
SourceKind |
Ottiene il tipo di MediaFrameSource da cui ha avuto origine il frame di riferimento, ad esempio un colore, un infrarosso o un'origine personalizzata. |
SystemRelativeTime |
Ottiene un timestamp relativo al sistema ed è correlata tra più origini multimediali nello stesso dispositivo. |
VideoMediaFrame |
Ottiene l'oggetto VideoMediaFrame di cui è stato eseguito il wrapping da MediaFrameReference, se è il tipo di frame rappresentato. |
Metodi
Close() |
Elimina l'oggetto e le risorse associate. |
Dispose() |
Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite. |