MultiSourceMediaFrameReader.TryAcquireLatestFrame Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Пытается получить объект MultiSourceMediaFrameReference , который предоставляет доступ к последним коррелируемым по времени кадрам из одного или нескольких объектов MediaFrameSource .
public:
virtual MultiSourceMediaFrameReference ^ TryAcquireLatestFrame() = TryAcquireLatestFrame;
MultiSourceMediaFrameReference TryAcquireLatestFrame();
public MultiSourceMediaFrameReference TryAcquireLatestFrame();
function tryAcquireLatestFrame()
Public Function TryAcquireLatestFrame () As MultiSourceMediaFrameReference
Возвращаемое значение
Объект MultiSourceMediaFrameReference, предоставляющий доступ к последним кадрам из источников кадров мультимедиа.
Комментарии
После получения экземпляра MultiSourceMediaFrameReference получите кадр мультимедиа, связанный со временем, из определенного источника кадров мультимедиа, вызвав MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId и передав значение свойства MediaFrameSourceInfo.Id для нужного источника кадра мультимедиа.
Каждый объект MultiSourceMediaFrameReader поддерживает циклический буфер объектов MediaFrameReference , полученных из TryAcquireLatestFrame. После использования всех объектов MediaFrameReference в буфере последующие вызовы TryAcquireLatestFrame приведут к тому, что система вызовет метод Close (или Dispose в C#) для самого старого объекта буфера, чтобы повторно использовать его. После удаления объекта вы больше не сможете использовать его для доступа к данным кадра. По этой причине не следует хранить объект MediaFrameReference дольше, чем требуется для обработки кадра. Если в сценарии приложения требуется дольше сохранять ссылку на данные, следует использовать один из предоставленных API для получения базовых данных. Эти способы включают перечисленные ниже.
- BufferMediaFrame.Buffer
- VideoMediaFrame.SoftwareBitmap
- VideoMediaFrame.GetVideoFrame
- VideoMediaFrame.CameraIntrinsics . Приложение отвечает за вызов Close (или Dispose) для объектов, возвращаемых этими API, когда они больше не используются.
Важно!
Если вы осуществляете доступ к объектам SoftwareBitmap или Direct3DSurface, предоставляемым свойством VideoMediaFrame класса MediaFrameReference, система создает строгую ссылку на эти объекты, что означает, что они не будут удален при вызове метода Dispose в содержащем классе MediaFrameReference. Необходимо явно вызвать метод Dispose класса SoftwareBitmap или Direct3DSurface непосредственно для объектов, чтобы немедленно удалить их. В противном случае сборщик мусора в конечном итоге освободит память для этих объектов, однако узнать, когда это произойдет, невозможно, и если количество выделенных растровых изображений или поверхностей превышает максимальное количество, разрешенное системой, поток новых кадров будет остановлен.