AppCaptureMetadataWriter Klasse

Definition

Ermöglicht einer App das Speichern von Metadaten, die das System in aufgezeichnete Videodateien oder Übertragungsstreams von App-Inhalten einfügt.

public ref class AppCaptureMetadataWriter sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Media.Capture.AppCaptureMetadataContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Media.Capture.AppCaptureMetadataContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class AppCaptureMetadataWriter final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Media.Capture.AppCaptureMetadataContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Media.Capture.AppCaptureMetadataContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class AppCaptureMetadataWriter : System.IDisposable
function AppCaptureMetadataWriter()
Public NotInheritable Class AppCaptureMetadataWriter
Implements IDisposable
Vererbung
Object Platform::Object IInspectable AppCaptureMetadataWriter
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows Desktop Extension SDK (eingeführt in 10.0.16299.0)
API contract
Windows.Media.Capture.AppCaptureMetadataContract (eingeführt in v1.0)

Hinweise

Wenn Sie eine instance von AppCaptureMetadataWriter erstellen, initialisiert das System einen eindeutigen instance für Ihre App und kann dann Metadatenelemente schreiben. Obwohl nur eine App gleichzeitig erfasst oder übertragen werden kann, kann das System Metadaten für mehrere Apps gleichzeitig sammeln. AppCaptureMetadataWriter initiiert oder ändert den aktuellen Aufnahme- oder Übertragungszustand nicht. Sie sollten die instance von AppCaptureMetadataWriter erstellen und daran halten, solange das System die Metadaten im Arbeitsspeicher speichern soll. Wenn die instance von AppCaptureMetadataWriter veröffentlicht wird, werden alle Metadaten, die diesem instance von AppCaptureMetadataWriter zugeordnet sind, ebenfalls freigegeben.

Wenn Sie ein Metadatenelement schreiben, ordnet das System dem Element einen Zeitstempel zu, sodass es automatisch in den erfassten oder übertragenen Zeitbereich eingeschlossen wird, für den es gilt.

Derzeit werden für AppCaptureMetadataWriter zwei verschiedene Arten von Metadatenelementen unterstützt: Ereignisse und Status. Ein Metadatenereignis ist einem einzelnen Zeitpunkt zugeordnet und in der Regel einer sofortigen Aktion zugeordnet, z. B. einem Spieler in einem Spiel, das einen Punkt erzielt. Ein Zustand ist ein Metadatenelement, das über ein Zeitfenster angewendet wird. Ein Beispiel hierfür ist ein Zustand, der den Namen der Spielkarte enthält, in der sich ein Spieler gerade befindet. Nachdem ein Zustandswert festgelegt wurde, behält das System diesen Wert für den Zustand bei, bis er auf einen anderen Wert festgelegt wird, bis er mit einem StopState-Aufruf beendet wird oder bis alle Zustände mit einem Aufruf von StopAllStates beendet werden. Sowohl Ereignisse als auch Zustände werden als Schlüssel-Wert-Paar dargestellt, wobei der Schlüssel der Status- oder Ereignisname ist und der Wert entweder eine ganze Zahl, ein Double oder ein Zeichenfolgenwert ist.

Wenn die historische App-Erfassung aktiviert ist, sammelt das System metadaten, die mit AppCaptureMetadataWriter geschrieben wurden, auch wenn sie nicht aktiv erfasst oder übertragen werden. Wenn beispielsweise eine Aufzeichnung der vorherigen 30 Sekunden in eine Videodatei auf dem Datenträger geschrieben wird, werden die Metadaten, die dem aufgezeichneten Zeitfenster zugeordnet sind, in der Datei enthalten. Das System erzwingt eine Beschränkung des Speicherplatzes, der pro App zum Speichern von gesammelten Metadaten zugewiesen wird. Sie können den derzeit verfügbaren Speicherplatz abrufen, indem Sie die RemainingStorageBytesAvailable-Eigenschaft aktivieren.

Wenn der gesamte zugewiesene Speicherplatz ausgefüllt wurde, beginnt das System mit dem Löschen von Metadaten mit dem AppCaptureMetadataPriority-Wert , der beim Schreiben der Metadatenelemente angegeben wurde, und dem Alter jedes Elements, um zuerst die ältesten, am wenigsten wichtigen Daten zu löschen. In diesem Fall wird das MetadataPurged-Ereignis ausgelöst. Als Reaktion auf dieses Ereignis können Sie die Menge der Metadaten reduzieren, die Ihre App schreibt, aber dies ist nicht erforderlich.

Metadatenelemente werden gemäß der AppCaptureMetadataPriority-Enumeration als Wichtig oder Information klassifiziert. Wichtige Priorität bedeutet, dass die Metadaten in den Xbox Live-Dienst hochgeladen werden. Die Metadaten werden unter anderem verwendet, um Benutzern bei der Suche nach Clips zu helfen oder Broadcasts mit Anmerkungen zu versehen. Sowohl wichtige als auch informationale Metadaten sind in die generierte .mp4-Datei eingebettet, sodass Sie keine privaten Benutzerinformationen in die Metadaten einschließen sollten.

Diese API löst möglicherweise einen Fehler aus, wenn der Hintergrunddienst aufgrund eines Leerlauftimeouts heruntergefahren wurde.

Konstruktoren

AppCaptureMetadataWriter()

Initialisiert eine neue instance der AppCaptureMetadataWriter-Klasse.

Eigenschaften

RemainingStorageBytesAvailable

Ruft die Anzahl der Bytes ab, die in dem vom System für App-Erfassungsmetadatenelemente zugewiesenen Speicherplatz verbleiben.

Methoden

AddDoubleEvent(String, Double, AppCaptureMetadataPriority)

Fügt ein neues Double Metadata-Ereignis hinzu.

AddInt32Event(String, Int32, AppCaptureMetadataPriority)

Fügt ein neues ganzzahliges Metadatenereignis hinzu.

AddStringEvent(String, String, AppCaptureMetadataPriority)

Fügt ein neues Zeichenfolgenmetadatenereignis hinzu.

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.

StartDoubleState(String, Double, AppCaptureMetadataPriority)

Fügt einen neuen doppelten Metadatenzustand hinzu.

StartInt32State(String, Int32, AppCaptureMetadataPriority)

Fügt einen neuen doppelten Metadatenzustand hinzu.

StartStringState(String, String, AppCaptureMetadataPriority)

Fügt einen neuen doppelten Metadatenzustand hinzu.

StopAllStates()

Beendet alle Metadatenzustände.

StopState(String)

Beendet den Metadatenzustand mit dem angegebenen Bezeichner.

Ereignisse

MetadataPurged

Tritt auf, wenn das System zuvor gespeicherte Metadatenelemente löscht.

Gilt für: