MFCreateSinkWriterFromURL 函式 (mfreadwrite.h)
從 URL 或位元組資料流建立接收寫入器。
語法
HRESULT MFCreateSinkWriterFromURL(
[in] LPCWSTR pwszOutputURL,
[in] IMFByteStream *pByteStream,
[in] IMFAttributes *pAttributes,
[out] IMFSinkWriter **ppSinkWriter
);
參數
[in] pwszOutputURL
包含輸出檔 URL 的 Null 終止字串。 此參數可以是 Null。
[in] pByteStream
位元組數據流之 IMFByteStream 介面的指標。 此參數可以是 Null。
如果此參數是有效的指標,接收寫入器會寫入提供的位元組數據流。 (位元組數據流必須是可寫入的。) 否則,如果 pByteStream 為 NULL,接收寫入器會建立名為 pwszOutputURL 的新檔案。
[in] pAttributes
IMFAttributes 介面的指標。 您可以使用此參數來設定接收寫入器。 如需詳細資訊,請參閱 接收寫入器屬性。 此參數可以是 Null。
[out] ppSinkWriter
接收 IMFSinkWriter 介面的指標。 呼叫端必須釋放 介面。
傳回值
此函式可以傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
找不到指定的 URL。 |
備註
呼叫 CoInitialize (Ex) 和 MFStartup ,再呼叫此函式。
此函式的前三個參數可以是 NULL;不過,只有特定組合有效:
Description | pwszOutputURL | pByteStream | pAttributes |
---|---|---|---|
指定不含 URL 的位元組資料流。 | NULL | 非 NULL | 必要的 (不得為 NULL) 。 |
指定不含位元組數據流的 URL。 | 不是 NULL | NULL | 選擇性 (可以是 NULL) 。 |
同時指定 URL 和位元組數據流。 | 非 NULL | 非 NULL | 選擇性 (可以是 NULL) 。 |
第一個案例需要 pAttributes 參數,而其他案例則為選擇性參數。
- 案例 1:指定不含 URL 的位元組數據流。 pAttributes 參數必須指向包含MF_TRANSCODE_CONTAINERTYPE屬性的屬性存放區。 接收寫入器會使用 MF_TRANSCODE_CONTAINERTYPE 屬性來判斷要寫入的檔案容器類型,例如 ASF 或 MP4。
- 案例 2:指定不含位元組數據流的 URL。 接收寫入器會建立名為 pwszOutputURL 的新檔案。 如果 pAttributes 指定具有 MF_TRANSCODE_CONTAINERTYPE 屬性的屬性存放區,接收寫入器會使用該屬性來判斷檔案容器的類型。 否則,如果MF_TRANSCODE_CONTAINERTYPE屬性不存在或 pAttributes 為 NULL,接收寫入器會使用擴展名來選取容器類型;例如,ASF 檔案的 「.asf」。
- 案例 3:同時指定 URL 和位元組數據流。 接收寫入器會寫入位元組數據流。 pwszOutputURL 中提供的 URL 僅供參考;接收寫入器不會建立新的檔案。 如果 pAttributes 指定具有 MF_TRANSCODE_CONTAINERTYPE 屬性的屬性存放區,接收寫入器會使用該屬性來判斷檔案容器的類型。 否則,接收寫入器會使用擴展名來選取容器類型。 在此情況下,MF_TRANSCODE_CONTAINERTYPE屬性會覆寫 URL 擴展名。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 的 Windows 7、Windows Vista 和平臺更新補充 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfreadwrite.h |
程式庫 | Mfreadwrite.lib |
Dll | Mfreadwrite.dll |