Поделиться через


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
Наследование
Object Platform::Object IInspectable MediaFrameReference
Атрибуты
Реализации

Требования к 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()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

Применяется к

См. также раздел