共用方式為


MultiSourceMediaFrameReference 類別

定義

包裝函式類別,可讓您存取從一或多個 MediaFrameSource 物件取得的時間相互關聯框架。 呼叫 TryGetFrameReferenceBySourceId 以取得代表特定媒體畫面來源之畫面的 MediaFrameReference

public ref class MultiSourceMediaFrameReference sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MultiSourceMediaFrameReference final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MultiSourceMediaFrameReference : System.IDisposable
Public NotInheritable Class MultiSourceMediaFrameReference
Implements IDisposable
繼承
Object Platform::Object IInspectable MultiSourceMediaFrameReference
屬性
實作

Windows 需求

裝置系列
Windows 10 Creators Update (已於 10.0.15063.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v4.0 引進)

備註

若要從媒體畫面來源取得 MultiSourceMediaFrameReference 的實例,請在MediaCapture物件上呼叫CreateMultiSourceFrameReaderAsync來建立MultiSourceMediaFrameReader,並傳入您要讀取的MediaFrameSource物件。 從呼叫 StartAsync開始之後,請呼叫 TryAcquireLatestFrame 以取得 MultiSourceMediaFrameReference ,其中包含來自媒體畫面來源的最新相互關聯畫面。

呼叫 MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId ,並傳入所需媒體畫面來源 之 MediaFrameSourceInfo.Id 屬性的值,以從特定媒體畫面來源取得時間相互關聯的媒體框架。

每個MultiSourceMediaFrameReader都會維護從MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId取得之MediaFrameReference物件的迴圈緩衝區。 使用緩衝區中的所有 MediaFrameReference 物件之後,後續對 TryAcquireLatestFrame 的呼叫會導致系統在最舊的緩衝區物件上呼叫 Close ) (或 Dispose ,以重複使用它。 一旦處置物件之後,您就無法再使用它來存取框架資料。 基於這個理由,您不應該儲存比您實際需要處理框架還要長的 MediaFrameReference 物件。 如果您的應用程式案例要求您保留資料參考較長的時間,您應該使用提供的其中一個 API 來取得基礎資料。 這些方法包括:

重要

如果您要存取 MediaFrameReferenceVideoMediaFrame 屬性提供的 SoftwareBitmapDirect3DSurface 物件,則系統會建立這些物件的強式參考,這表示當您在包含的 MediaFrameReference 上呼叫 Dispose 時,他們不會被處置。 您必須針對要立即處置的物件明確地直接呼叫 SoftwareBitmapDirect3DSurfaceDispose 方法。 否則,記憶體回收行程最終會釋放這些物件的記憶體,但您無法得知何時會釋放,而且如果配置的點陣圖或表面的數量超過系統允許的數量上限,新畫面的資料流就會停止。

如需使用 MediaFrameSource 擷取畫面的作法指引,請參閱 使用 MediaFrameReader 處理媒體畫面

方法

Close()

處置物件和相關聯的資源。

Dispose()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

TryGetFrameReferenceBySourceId(String)

嘗試取得指定之媒體畫面來源的時間相互關聯 MediaFrameReference

適用於

另請參閱