Condividi tramite


AppCaptureMetadataWriter Classe

Definizione

Consente a un'app di archiviare i metadati che il sistema inserisce nei file video acquisiti o nei flussi trasmessi del contenuto dell'app.

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
Ereditarietà
Object Platform::Object IInspectable AppCaptureMetadataWriter
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows Desktop Extension SDK (è stato introdotto in 10.0.16299.0)
API contract
Windows.Media.Capture.AppCaptureMetadataContract (è stato introdotto in v1.0)

Commenti

Quando si crea un'istanza di AppCaptureMetadataWriter, il sistema inizializza un'istanza univoca per l'app ed è quindi pronta per la scrittura di elementi di metadati. Anche se è possibile acquisire o trasmettere una sola app alla volta, il sistema può accumulare metadati per più app contemporaneamente. AppCaptureMetadataWriter non avvia o modifica lo stato di acquisizione o trasmissione corrente. È consigliabile creare e conservare l'istanza di AppCaptureMetadataWriter purché il sistema contenga i metadati in memoria. Quando viene rilasciata l'istanza di AppCaptureMetadataWriter , vengono rilasciati anche tutti i metadati associati a tale istanza di AppCaptureMetadataWriter .

Quando si scrive un elemento di metadati, il sistema associa un timestamp all'elemento in modo che venga automaticamente incluso nell'intervallo di tempo acquisito o trasmesso a cui si applica.

Attualmente sono supportati due tipi diversi di elementi di metadati AppCaptureMetadataWriter: eventi e stato. Un evento di metadati è associato a un singolo punto nel tempo e in genere è associato a un'azione istantanea, ad esempio un giocatore in un gioco che segna un punto. Uno stato è un elemento di metadati che si applica in un intervallo di tempo. Un esempio è uno stato che contiene il nome della mappa di gioco in cui è attualmente presente un giocatore. Dopo aver impostato un valore di stato, il sistema mantiene tale valore per lo stato finché non viene impostato su un valore diverso, fino a quando non viene arrestato con una chiamata StopState o finché tutti gli stati non vengono terminati con una chiamata a StopAllStates. Entrambi gli eventi e gli stati sono rappresentati come coppia chiave/valore in cui la chiave è il nome dello stato o dell'evento e il valore è un numero intero, un valore double o un valore stringa.

Quando l'acquisizione di app cronologiche è abilitata, il sistema accumula metadati scritti con AppCaptureMetadataWriter anche quando non acquisisce o trasmette attivamente. Quando, ad esempio, un'acquisizione dei 30 secondi precedenti viene scritta in un file video su disco, i metadati associati all'intervallo di tempo registrato vengono inclusi nel file. Il sistema impone un limite allo spazio di archiviazione allocato per ogni app per l'archiviazione dei metadati accumulati. È possibile ottenere lo spazio di archiviazione attualmente disponibile controllando la proprietà RemainingStorageBytesAvailable .

Quando tutto lo spazio assegnato è stato riempito, il sistema inizierà a ripulire i metadati usando il valore AppCaptureMetadataPriority , specificato quando sono stati scritti gli elementi di metadati e l'età di ogni elemento per eliminare prima i dati meno recenti e meno importanti. In questo caso, viene generato l'evento MetadataPurged . In risposta a questo evento, è possibile scegliere di ridurre la quantità di metadati che l'app sta scrivendo, ma non è necessaria.

Gli elementi di metadati vengono classificati come Importanti o Informativi come specificato con l'enumerazione AppCaptureMetadataPriority . Priorità importante significa che i metadati verranno caricati nel servizio Xbox Live. I metadati verranno usati per aiutare gli utenti a cercare clip o annotare le trasmissioni, tra le altre cose. Sia i metadati importanti che i metadati informativi sono incorporati nel file di .mp4 generato, pertanto non è consigliabile includere informazioni utente private nei metadati.

Questa API può generare un errore se il servizio in background è stato arrestato a causa del timeout di inattività.

Costruttori

AppCaptureMetadataWriter()

Inizializza una nuova istanza della classe AppCaptureMetadataWriter .

Proprietà

RemainingStorageBytesAvailable

Ottiene il numero di byte rimanenti nello spazio di archiviazione allocato dal sistema per gli elementi dei metadati di acquisizione dell'app.

Metodi

AddDoubleEvent(String, Double, AppCaptureMetadataPriority)

Aggiunge un nuovo evento di metadati double.

AddInt32Event(String, Int32, AppCaptureMetadataPriority)

Aggiunge un nuovo evento di metadati integer.

AddStringEvent(String, String, AppCaptureMetadataPriority)

Aggiunge un nuovo evento di metadati stringa.

Close()

Elimina l'oggetto e le risorse associate.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

StartDoubleState(String, Double, AppCaptureMetadataPriority)

Aggiunge un nuovo stato di metadati double.

StartInt32State(String, Int32, AppCaptureMetadataPriority)

Aggiunge un nuovo stato di metadati double.

StartStringState(String, String, AppCaptureMetadataPriority)

Aggiunge un nuovo stato di metadati double.

StopAllStates()

Arresta tutti gli stati dei metadati.

StopState(String)

Arresta lo stato dei metadati con l'identificatore specificato.

Eventi

MetadataPurged

Si verifica quando il sistema elimina gli elementi di metadati archiviati in precedenza.

Si applica a