MultiSourceMediaFrameReader.TryAcquireLatestFrame Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
- BufferMediaFrame.Buffer
- VideoMediaFrame.SoftwareBitmap
- VideoMediaFrame.GetVideoFrame
- VideoMediaFrame.CameraIntrinsics Es liegt in der Verantwortung der App , Close (oder Dispose) für die von diesen APIs zurückgegebenen Objekte aufzurufen, wenn sie nicht mehr verwendet werden.
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.