共用方式為


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

如果此參數是有效的指標,接收寫入器會寫入提供的位元組數據流。 (位元組數據流必須是可寫入的。) 否則,如果 pByteStreamNULL,接收寫入器會建立名為 pwszOutputURL 的新檔案。

[in] pAttributes

IMFAttributes 介面的指標。 您可以使用此參數來設定接收寫入器。 如需詳細資訊,請參閱 接收寫入器屬性。 此參數可以是 Null

[out] ppSinkWriter

接收 IMFSinkWriter 介面的指標。 呼叫端必須釋放 介面。

傳回值

此函式可以傳回下列其中一個值。

傳回碼 描述
S_OK
成功。
MF_E_NOT_FOUND
找不到指定的 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屬性不存在或 pAttributesNULL,接收寫入器會使用擴展名來選取容器類型;例如,ASF 檔案的 「.asf」。
  • 案例 3:同時指定 URL 和位元組數據流。 接收寫入器會寫入位元組數據流。 pwszOutputURL 中提供的 URL 僅供參考;接收寫入器不會建立新的檔案。 如果 pAttributes 指定具有 MF_TRANSCODE_CONTAINERTYPE 屬性的屬性存放區,接收寫入器會使用該屬性來判斷檔案容器的類型。 否則,接收寫入器會使用擴展名來選取容器類型。 在此情況下,MF_TRANSCODE_CONTAINERTYPE屬性會覆寫 URL 擴展名。
如果已安裝適用於 Windows Vista 的平臺更新補充,此函式可在 Windows Vista 上使用。

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 的 Windows 7、Windows Vista 和平臺更新補充 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfreadwrite.h
程式庫 Mfreadwrite.lib
Dll Mfreadwrite.dll

另請參閱

媒體基礎函式