AppCaptureMetadataWriter Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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. |