AppCaptureMetadataWriter Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Permite a una aplicación almacenar metadatos que el sistema insertará en archivos de vídeo capturados o transmitir secuencias de contenido de la aplicación.
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
- Herencia
- Atributos
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows Desktop Extension SDK (se introdujo en la versión 10.0.16299.0)
|
API contract |
Windows.Media.Capture.AppCaptureMetadataContract (se introdujo en la versión v1.0)
|
Comentarios
Al crear una instancia de AppCaptureMetadataWriter, el sistema inicializa una instancia única para la aplicación y, a continuación, está listo para escribir elementos de metadatos. Aunque solo una aplicación puede capturar o difundir a la vez, el sistema puede acumular metadatos para varias aplicaciones simultáneamente. AppCaptureMetadataWriter no inicia ni modifica el estado actual de captura o difusión. Debe crear y mantener en la instancia de AppCaptureMetadataWriter siempre que desee que el sistema contenga los metadatos en la memoria. Cuando se libera la instancia de AppCaptureMetadataWriter , también se liberan todos los metadatos asociados a esa instancia de AppCaptureMetadataWriter .
Al escribir un elemento de metadatos, el sistema asocia una marca de tiempo con el elemento para que se incluya automáticamente con el intervalo de tiempo capturado o de difusión al que se aplica.
Actualmente, se admiten dos tipos diferentes de elementos de metadatos AppCaptureMetadataWriter: eventos y estado. Un evento de metadatos está asociado a un único punto en el tiempo y normalmente está asociado a una acción instantánea, como un jugador de un juego que puntua un punto. Un estado es un elemento de metadatos que se aplica a través de un período de tiempo. Un ejemplo de esto es un estado que contiene el nombre del mapa del juego en el que está actualmente un jugador. Una vez establecido un valor de estado, el sistema mantiene ese valor para el estado hasta que se establece en un valor diferente, hasta que se detiene con una llamada StopState o hasta que todos los estados finalizan con una llamada a StopAllStates. Tanto los eventos como los estados se representan como un par clave-valor donde la clave es el estado o el nombre del evento y el valor es un entero, un doble o un valor de cadena.
Cuando la captura de aplicaciones históricas está habilitada, el sistema acumula los metadatos escritos con AppCaptureMetadataWriter incluso cuando no captura ni difunde activamente. Cuando, por ejemplo, una captura de los 30 segundos anteriores se escribe en un archivo de vídeo en el disco, los metadatos asociados a la ventana de tiempo grabada se incluyen en el archivo. El sistema impone un límite en el espacio de almacenamiento que se asigna por aplicación para almacenar los metadatos acumulados. Para obtener el espacio de almacenamiento disponible actualmente, compruebe la propiedad RemainingStorageBytesAvailable .
Cuando se haya rellenado todo el espacio asignado, el sistema comenzará a purgar los metadatos mediante el valor AppCaptureMetadataPriority , especificado cuando se escribieron los elementos de metadatos y la antigüedad de cada elemento para eliminar primero los datos más antiguos y menos importantes. Cuando esto ocurre, se genera el evento MetadataPurged . En respuesta a este evento, puede optar por reducir la cantidad de metadatos que está escribiendo la aplicación, pero esto no es necesario.
Los elementos de metadatos se clasifican como Importantes o Informativos según se especifica con la enumeración AppCaptureMetadataPriority . Prioridad importante significa que los metadatos se cargarán en el servicio Xbox Live. Los metadatos se usarán para ayudar a los usuarios a buscar clips o anotar transmisiones, entre otras cosas. Los metadatos importantes e informativos se insertan en el archivo de .mp4 generado, por lo que no debe incluir ninguna información de usuario privada en los metadatos.
Esta API puede producir un error si el servicio en segundo plano se ha cerrado debido al tiempo de espera de inactividad.
Constructores
AppCaptureMetadataWriter() |
Inicializa una nueva instancia de la clase AppCaptureMetadataWriter . |
Propiedades
RemainingStorageBytesAvailable |
Obtiene el número de bytes restantes en el espacio de almacenamiento asignado por el sistema para los elementos de metadatos de captura de aplicaciones. |
Métodos
AddDoubleEvent(String, Double, AppCaptureMetadataPriority) |
Agrega un nuevo evento de metadatos dobles. |
AddInt32Event(String, Int32, AppCaptureMetadataPriority) |
Agrega un nuevo evento de metadatos enteros. |
AddStringEvent(String, String, AppCaptureMetadataPriority) |
Agrega un nuevo evento de metadatos de cadena. |
Close() |
Elimina el objeto y los recursos asociados. |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. |
StartDoubleState(String, Double, AppCaptureMetadataPriority) |
Agrega un nuevo estado de metadatos dobles. |
StartInt32State(String, Int32, AppCaptureMetadataPriority) |
Agrega un nuevo estado de metadatos dobles. |
StartStringState(String, String, AppCaptureMetadataPriority) |
Agrega un nuevo estado de metadatos dobles. |
StopAllStates() |
Detiene todos los estados de metadatos. |
StopState(String) |
Detiene el estado de metadatos con el identificador especificado. |
Eventos
MetadataPurged |
Se produce cuando el sistema purga los elementos de metadatos almacenados previamente. |