MediaFrameReference Klasse
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.
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
- 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. |