AppCaptureMetadataWriter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Позволяет приложению хранить метаданные, которые система будет вставлять в захваченные видеофайлы или широковещательные потоки содержимого приложения.
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
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows Desktop Extension SDK (появилось в 10.0.16299.0)
|
API contract |
Windows.Media.Capture.AppCaptureMetadataContract (появилось в v1.0)
|
Комментарии
При создании экземпляра AppCaptureMetadataWriter система инициализирует уникальный экземпляр приложения, а затем готова к написанию элементов метаданных. Хотя одновременно можно записывать или транслировать только одно приложение, система может накапливать метаданные для нескольких приложений одновременно. AppCaptureMetadataWriter не инициирует и не изменяет текущее состояние записи или трансляции. Необходимо создать экземпляр AppCaptureMetadataWriter и удерживать его до тех пор, пока требуется, чтобы система держала метаданные в памяти. При выпуске экземпляра AppCaptureMetadataWriter также освобождаются все метаданные, связанные с этим экземпляром AppCaptureMetadataWriter .
При написании элемента метаданных система связывает метку времени с элементом, чтобы она автоматически включалась в захваченный или широковещательный диапазон времени, к которому она применяется.
В настоящее время appCaptureMetadataWriter поддерживается двумя различными типами элементов метаданных: events и state. Событие метаданных связано с одной точкой во времени и обычно связано с мгновенным действием, например игроком в игре, набрав точку. Состояние — это элемент метаданных, который применяется в течение определенного периода времени. Примером этого является состояние, содержащее имя карты игры, в котором сейчас находится игрок. После установки значения состояния система сохраняет это значение для состояния, пока не будет установлено другое значение, пока не будет остановлено вызовом StopState или пока все состояния не будут завершены вызовом StopAllStates. События и состояния представлены в виде пары "ключ-значение", где ключ — это состояние или имя события, а значение — целое число, двойное или строковое значение.
Если включена запись исторических приложений, система накапливает метаданные, написанные с помощью AppCaptureMetadataWriter , даже если они не записываются или не транслируются. Например, если запись предыдущих 30 секунд записывается в видеофайл на диске, метаданные, связанные с записанным временным окном, включаются в файл. Система накладывает ограничение на дисковое пространство, выделяемое для каждого приложения для хранения накопленных метаданных. Доступное в настоящее время дисковое пространство можно получить, проверив свойство RemainingStorageBytesAvailable .
После заполнения всего выделенного пространства система начнет очистку метаданных с помощью значения AppCaptureMetadataPriority , указанного при записи элементов метаданных, и возраста каждого элемента, чтобы сначала удалить самые старые, наименее важные данные. В этом случае возникает событие MetadataPurged . В ответ на это событие вы можете уменьшить объем метаданных, записываемых приложением, но это не обязательно.
Элементы метаданных классифицируются как важные или информационные , как указано в перечислении AppCaptureMetadataPriority . Важный приоритет означает, что метаданные будут отправлены в службу Xbox Live. Метаданные будут использоваться, среди прочего, для поиска клипов или примечания к трансляциям. Важные и информационные метаданные внедряются в созданный .mp4 файл, поэтому не следует включать в метаданные какие-либо частные сведения о пользователе.
Этот API может вызвать ошибку, если фоновая служба завершила работу из-за времени ожидания простоя.
Конструкторы
AppCaptureMetadataWriter() |
Инициализирует новый экземпляр класса AppCaptureMetadataWriter . |
Свойства
RemainingStorageBytesAvailable |
Возвращает количество байтов, оставшихся в дисковом пространстве, выделенном системой для элементов метаданных записи приложения. |
Методы
AddDoubleEvent(String, Double, AppCaptureMetadataPriority) |
Добавляет новое событие двойных метаданных. |
AddInt32Event(String, Int32, AppCaptureMetadataPriority) |
Добавляет новое целочисленное событие метаданных. |
AddStringEvent(String, String, AppCaptureMetadataPriority) |
Добавляет новое событие метаданных строки. |
Close() |
Удаляет объект и связанные с ним ресурсы. |
Dispose() |
Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов. |
StartDoubleState(String, Double, AppCaptureMetadataPriority) |
Добавляет новое состояние двойных метаданных. |
StartInt32State(String, Int32, AppCaptureMetadataPriority) |
Добавляет новое состояние двойных метаданных. |
StartStringState(String, String, AppCaptureMetadataPriority) |
Добавляет новое состояние двойных метаданных. |
StopAllStates() |
Останавливает все состояния метаданных. |
StopState(String) |
Останавливает состояние метаданных с указанным идентификатором. |
События
MetadataPurged |
Происходит, когда система очищает ранее сохраненные элементы метаданных. |