Freigeben über


MediaFrameReference Klasse

Definition

Eine Wrapperklasse, die einen Frame darstellt, der aus einer MediaFrameSource abgerufen wurde. Verwenden Sie die Eigenschaften dieser Klasse, um auf den spezifischen Frametyp zuzugreifen, der von der Quelle bereitgestellt wird, z. B. videoMediaFrame oder 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
Vererbung
Object Platform::Object IInspectable MediaFrameReference
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 Anniversary Edition (eingeführt in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v3.0)

Hinweise

Um eine instance von MediaFrameReference aus einer Medienframequelle abzurufen, erstellen Sie einen MediaFrameReader, indem Sie CreateFrameReaderAsync für ein MediaCapture-Objekt aufrufen, das für die Verwendung der gewünschten Medienframequelle initialisiert wurde. Nachdem der Frameleser durch Aufrufen von StartAsync gestartet wurde, rufen Sie TryAcquireLatestFrame auf, um einen MediaFrameReference abzurufen, der den neuesten Frame aus der Medienframequelle darstellt.

Jeder MediaFrameReader 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. Dazu zählen unter anderem folgende Einstellungen:

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 die SoftwareBitmap - oder Direct3DSurface-Objekte zugreifen, die von der VideoMediaFrame-Eigenschaft eines MediaFrameReference-Objekts bereitgestellt werden, erstellt das System einen starken Verweis auf diese Objekte, was bedeutet, dass sie nicht verworfen werden, wenn Sie Dispose für das enthaltende MediaFrameReference aufrufen. Dies gilt auch für die SoftwareBitmap - oder Direct3DSurface-Objekte , die vom VideoFrame-Objekt bereitgestellt werden, das Sie aus der MediaFrameReference.VideoMediaFrame-Eigenschaft abrufen. 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.

Anleitungen zur Verwendung von MediaFrameSource zum Erfassen von Frames finden Sie unter Verarbeiten von Medienframes mit MediaFrameReader.

Versionsverlauf

Windows-Version SDK-Version Mehrwert
1803 17134 AudioMediaFrame

Eigenschaften

AudioMediaFrame

Ruft den von MediaFrameReference umschlossenen AudioMediaFrame ab, wenn dies der Typ des dargestellten Frames ist.

BufferMediaFrame

Ruft den vom MediaFrameReference umschlossenen BufferMediaFrame ab, wenn dies der Typ des dargestellten Frames ist.

CoordinateSystem

Ruft das räumliche Koordinatensystem für den Medienrahmen ab, auf den verwiesen wird, sofern eins definiert ist.

Duration

Ruft die Dauer des Medienrahmens ab, auf den verwiesen wird.

Format

Ruft das Format des Referenzmedienrahmens ab.

Properties

Ruft eine Zuordnung der Eigenschaften für den Frame ab, auf den verwiesen wird.

SourceKind

Ruft den Typ von MediaFrameSource ab, von dem der Frame stammt, auf den verwiesen wird, z. B. eine Farbe, ein Infrarot oder eine benutzerdefinierte Quelle.

SystemRelativeTime

Ruft einen Zeitstempel ab, der relativ zum System ist und über mehrere Medienquellen auf demselben Gerät korrelierbar ist.

VideoMediaFrame

Ruft den VideoMediaFrame ab, der von MediaFrameReference umschlossen wird, wenn dies der Typ des dargestellten Frames ist.

Methoden

Close()

Entsorgt das Objekt und die zugeordneten Ressourcen.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

Gilt für:

Weitere Informationen