IMFMediaEngineClassFactory::CreateInstance 方法 (mfmediaengine.h)
建立媒體引擎的新實例。
語法
HRESULT CreateInstance(
[in] DWORD dwFlags,
[in] IMFAttributes *pAttr,
[out] IMFMediaEngine **ppPlayer
);
參數
[in] dwFlags
MF_MEDIA_ENGINE_CREATEFLAGS列舉中零個或多個旗標的位OR。
[in] pAttr
屬性存放區 之 IMFAttributes 介面的指標。
此參數會指定媒體引擎的組態屬性。 呼叫 MFCreateAttributes 以建立屬性存放區。 然後,從 媒體引擎屬性清單中設定一或多個屬性。 如需詳細資料,請參閱<備註>。
[out] ppPlayer
接收 IMFMediaEngine 介面的指標。 呼叫端必須釋放 介面。
傳回值
這個方法可以傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
pAttr遺漏必要的屬性,或使用了不正確屬性組合。 |
備註
呼叫此方法之前,請先呼叫 MFStartup。
媒體引擎支援三種不同的模式:
[模式] | 描述 |
---|---|
框架伺服器模式 |
在此模式中,媒體引擎會將未壓縮的視訊畫面傳遞至應用程式。 應用程式會負責使用 Microsoft Direct3D 或任何其他轉譯技術來顯示每個畫面。
媒體引擎會轉譯音訊;應用程式不負責音訊轉譯。 框架伺服器模式是預設模式。 |
轉譯模式 |
在此模式中,媒體引擎會轉譯音訊和視訊。 影片會轉譯為應用程式所提供的視窗或 Microsoft DirectComposition 視覺效果。
若要啟用轉譯模式,請設定 MF_MEDIA_ENGINE_PLAYBACK_HWND 屬性或 MF_MEDIA_ENGINE_PLAYBACK_VISUAL 屬性。 |
音訊模式 |
在此模式中,媒體引擎只會轉譯音訊,不含視訊。
若要啟用音訊模式,請在dwFlags參數中設定MF_MEDIA_ENGINE_AUDIOONLY旗標。 |
初始化屬性
pAttr參數定義下列屬性。 有些是必要專案,有些是選擇性的,視您想要的模式而定。功能 | 屬性 | 框架伺服器模式 | 轉譯模式 | 音訊模式 |
---|---|---|---|---|
事件回呼 | MF_MEDIA_ENGINE_CALLBACK | 必要。 | 必要。 | 必要。 |
轉譯目標 | 下列其中之一: 這些屬性互斥。 設定其中一個屬性會使媒體引擎進入轉譯模式。 | 請勿設定。 | 必要。 | 請勿設定。 |
Direct3D 格式 | MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT | 必要。 | 選擇性。 | 請勿設定。 |
Microsoft DirectX Graphics Infrastructure (DXGI) 裝置管理員 | MF_MEDIA_ENGINE_DXGI_MANAGER | 選擇性。 | 選擇性。 | 請勿設定。 |
媒體引擎擴充功能 | MF_MEDIA_ENGINE_EXTENSION | 選擇性。 | 選擇性。 | 選擇性。 |
內容保護 | 下列任何一項: | 選擇性。 | 選擇性。 | 選擇性。 |
音訊播放 | 下列任何一項: | 選擇性。 | 選擇性。 | 選擇性。 |
Windows Phone 8
支援此 API。在手機上,媒體引擎僅支援畫面伺服器模式。 嘗試在轉譯模式或音訊模式中初始化介面將會失敗。
需求
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfmediaengine.h |