Condividi tramite


MediaFrameReference Classe

Definizione

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à
Object Platform::Object IInspectable MediaFrameReference
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.

Si applica a

Vedi anche