MultiSourceMediaFrameReader.TryAcquireLatestFrame Methode

Definition

Versucht, ein MultiSourceMediaFrameReference-Objekt abzurufen, das Zugriff auf die neuesten Zeit korrelierten Frames von einem oder mehreren MediaFrameSource-Objekten bietet.

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

Gibt zurück

Ein MultiSourceMediaFrameReference-Objekt , das Zugriff auf die neuesten Frames aus den Medienframequellen bietet.

Hinweise

Nachdem Sie eine instance von MultiSourceMediaFrameReference erhalten haben, rufen Sie den zeitrelrelierten Medienframe aus einer bestimmten Medienframequelle ab, indem Sie MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId aufrufen und den Wert der MediaFrameSourceInfo.Id-Eigenschaft für die gewünschte Medienframequelle übergeben.

Jeder MultiSourceMediaFrameReader verwaltet einen kreisförmigen Puffer von MediaFrameReference-Objekten , die von TryAcquireLatestFrame abgerufen wurden. Nachdem alle MediaFrameReference-Objekte im Puffer verwendet wurden, führen nachfolgende Aufrufe von TryAcquireLatestFrame dazu, dass das System Close (oder Dispose in C#) für das älteste Pufferobjekt aufruft, um es wiederzuverwenden. Nachdem das Objekt verworfen wurde, können Sie es nicht mehr für den Zugriff auf die Framedaten verwenden. Aus diesem Grund sollten Sie das MediaFrameReference-Objekt nicht länger speichern, als Sie den Frame tatsächlich verarbeiten müssen. Wenn Ihr App-Szenario erfordert, dass Sie einen Verweis auf die Daten länger aufbewahren, sollten Sie eine der bereitgestellten APIs verwenden, um die zugrunde liegenden Daten abzurufen. Diese Methoden umfassen:

Wichtig

Wenn Sie auf das SoftwareBitmap- oder Direct3DSurface-Objekt zugreifen, das von der VideoMediaFrame-Eigenschaft eines MediaFrameReference bereitgestellt wird, erstellt das System einen starken Verweis auf dieses Objekt. Das bedeutet, dass sie nicht entfernt werden, wenn Sie Dispose auf dem MediaFrameReference aufrufen, der das Objekt enthält. Sie müssen die Dispose-Methode von SoftwareBitmap oder Direct3DSurface explizit direkt aufrufen, damit die Objekte sofort entfernt werden. Andernfalls wird der Garbage Collector den Speicher für diese Objekte schließlich freigeben. Sie wissen jedoch nicht, wann dies sein wird. Wenn die Anzahl der zugeteilten Bitmaps oder Oberflächen die maximale, vom System zugelassene Menge überschreitet, wird der Fluss neuer Frames beendet.

Gilt für:

Weitere Informationen