MediaFrameReference Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Класс-оболочка, представляющий кадр, полученный из MediaFrameSource. Используйте свойства этого класса для доступа к определенному типу кадра, предоставленному источником, например VideoMediaFrame или BufferMediaFrame.
public ref class MediaFrameReference sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MediaFrameReference final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MediaFrameReference : System.IDisposable
Public NotInheritable Class MediaFrameReference
Implements IDisposable
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 Anniversary Edition (появилось в 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v3.0)
|
Комментарии
Чтобы получить экземпляр MediaFrameReference из источника кадра мультимедиа, создайте MediaFrameReader , вызвав Метод CreateFrameReaderAsync для объекта MediaCapture , инициализированного для использования нужного источника кадров мультимедиа. После запуска средства чтения кадров вызовом StartAsync вызовите TryAcquireLatestFrame , чтобы получить MediaFrameReference, представляющий последний кадр из источника кадров мультимедиа.
Каждый MediaFrameReader поддерживает циклический буфер объектов MediaFrameReference , полученных из TryAcquireLatestFrame. После использования всех объектов MediaFrameReference в буфере последующие вызовы TryAcquireLatestFrame вызовут метод Close (или Dispose в C#) для самого старого объекта буфера, чтобы повторно использовать его. После удаления объекта вы больше не сможете использовать его для доступа к данным кадра. По этой причине не следует хранить объект MediaFrameReference дольше, чем требуется для обработки кадра. Если в сценарии приложения требуется хранить ссылку на данные дольше, следует использовать один из API, предоставленных для получения базовых данных. К ним относятся следующие объекты.
Приложение отвечает за вызов Close (или Dispose) для объектов, возвращаемых этими API, когда они больше не используются.
Важно!
Если вы обращаетесь к объектам SoftwareBitmap или Direct3DSurface , предоставляемым свойством VideoMediaFrame объекта MediaFrameReference, система создает строгой ссылку на эти объекты, что означает, что они не будут удалены при вызове Dispose для содержащего MediaFrameReference. Это также относится к объектам SoftwareBitmap или Direct3DSurface , предоставляемым объектом VideoFrame , который вы получаете из свойства MediaFrameReference.VideoMediaFrame . Необходимо явно вызвать метод Dispose класса SoftwareBitmap или Direct3DSurface непосредственно для объектов, чтобы немедленно удалить их. В противном случае сборщик мусора в конечном итоге освободит память для этих объектов, однако узнать, когда это произойдет, невозможно, и если количество выделенных растровых изображений или поверхностей превышает максимальное количество, разрешенное системой, поток новых кадров будет остановлен.
Инструкции по использованию MediaFrameSource для захвата кадров см. в разделе Обработка кадров мультимедиа с помощью MediaFrameReader.
Журнал версий
Версия Windows | Версия пакета SDK | Добавленная стоимость |
---|---|---|
1803 | 17134 | AudioMediaFrame |
Свойства
AudioMediaFrame |
Возвращает объект AudioMediaFrame , заключенный в объект MediaFrameReference, если это тип представленного кадра. |
BufferMediaFrame |
Возвращает bufferMediaFrame, заключенный в оболочку MediaFrameReference, если это тип представленного кадра. |
CoordinateSystem |
Возвращает систему пространственных координат для указанного кадра мультимедиа, если он определен. |
Duration |
Возвращает длительность указанного кадра мультимедиа. |
Format |
Возвращает формат опорного кадра носителя. |
Properties |
Возвращает карту свойств для указанного кадра. |
SourceKind |
Возвращает тип MediaFrameSource , из которого был создан кадр, на который указывает ссылка, например цвет, инфракрасный или пользовательский источник. |
SystemRelativeTime |
Возвращает метку времени, которая относится к системе и сопоставляется между несколькими источниками мультимедиа на одном устройстве. |
VideoMediaFrame |
Возвращает объект VideoMediaFrame , заключенный в объект MediaFrameReference, если это тип представленного кадра. |
Методы
Close() |
Удаляет объект и связанные с ним ресурсы. |
Dispose() |
Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов. |