Condividi tramite


MultiSourceMediaFrameReader.TryAcquireLatestFrame Metodo

Definizione

Tenta di ottenere un oggetto MultiSourceMediaFrameReference che fornisce l'accesso ai fotogrammi correlati all'ora più recenti da uno o più oggetti MediaFrameSource .

public:
 virtual MultiSourceMediaFrameReference ^ TryAcquireLatestFrame() = TryAcquireLatestFrame;
MultiSourceMediaFrameReference TryAcquireLatestFrame();
public MultiSourceMediaFrameReference TryAcquireLatestFrame();
function tryAcquireLatestFrame()
Public Function TryAcquireLatestFrame () As MultiSourceMediaFrameReference

Restituisce

MultiSourceMediaFrameReference che fornisce l'accesso ai fotogrammi più recenti dalle origini del frame multimediale.

Commenti

Dopo aver ottenuto un'istanza di MultiSourceMediaFrameReference, ottenere il frame multimediale correlato al tempo da un'origine fotogramma multimediale specifica chiamando MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId e passando il valore della proprietà MediaFrameSourceInfo.Id per l'origine fotogramma multimediale desiderata.

Ogni MultiSourceMediaFrameReader gestisce un buffer circolare di oggetti MediaFrameReference ottenuti da TryAcquireLatestFrame. Dopo aver usato tutti gli oggetti MediaFrameReference nel buffer, le chiamate successive a TryAcquireLatestFrame causano la chiamata del sistema a Close (o Dispose in C#) nell'oggetto buffer meno recente per riutilizzarlo. 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ù lungo di quanto sia effettivamente necessario 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. Questi metodi includono:

Importante

Se accedi all'oggetto SoftwareBitmap o Direct3DSurface specificato dalla proprietà VideoMediaFrame di un oggetto MediaFrameReference, il sistema crea un riferimento sicuro a questi oggetti, che di conseguenza non vengono eliminati quando chiami Dispose nell'oggetto MediaFrameReference contenitore. 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à.

Si applica a

Vedi anche