MFCreateASFStreamingMediaSink 函式 (wmcontainer.h)
建立 ASF 串流接收的啟用物件。
ASF 串流接收可讓應用程式將串流進階系統格式 (ASF) 封包寫入 HTTP 位元組資料流。
語法
HRESULT MFCreateASFStreamingMediaSink(
IMFByteStream *pIByteStream,
IMFMediaSink **ppIMediaSink
);
參數
pIByteStream
ASF 媒體接收寫入數據流內容的位元組數據流物件的指標。
ppIMediaSink
接收 ASF 串流媒體接收物件的 IMFMediaSink 介面指標。 若要建立媒體接收,應用程式必須在收到的指標上呼叫 IMFActivate::ActivateObject 。 呼叫端必須釋放介面指標。
傳回值
如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
若要在另一個進程中建立 ASF 串流接收,請呼叫 MFCreateASFStreamingMediaSinkActivate。
應用程式可以在 ppIMediaSink 參數所收到的媒體接收物件上呼叫 IUnknown::QueryInterface,以取得 ASF ContentInfo 物件的指標。 ContentInfo 物件可用來設定編碼器組態設定、提供 ASF 配置檔所提供的數據流屬性,以及新增元數據資訊。 這些組態設定會填入編碼 ASF 檔案的各種 ASF 標頭物件。 如需相關資訊,請參閱
在 ContentInfo 物件中設定屬性。
範例
下列程式代碼範例示範如何建立 ASF 來源的媒體接收。 本範例會將數據流組態設定從來源複製到代表輸出檔案之 ASF 標頭物件的 ContentInfo 物件。
// Creates an an instance of the ASF streaming sink.
HRESULT CreateASFStreamingSink(
IMFMediaSource *pSource,
IMFByteStream *pOutputByteStream,
IMFMediaSink **ppMediaSink
)
{
IMFPresentationDescriptor* pSourcePD = NULL;
IMFASFProfile* pASFProfile = NULL;;
IMFMediaSink* pMediaSink = NULL;
IMFASFContentInfo* pASFContentInfo = NULL;
// Create the streaming media sink for the ASF file
HRESULT hr = MFCreateASFStreamingMediaSink(pOutputByteStream, &pMediaSink);
if (FAILED(hr))
{
goto done;
}
//
// Transfer the ASF profile from the media source to the sink.
//
// Get the presentation descriptor from the source.
hr = pSource->CreatePresentationDescriptor(&pSourcePD);
if (FAILED(hr))
{
goto done;
}
// Convert the presentation descriptor to an ASF profile.
hr = MFCreateASFProfileFromPresentationDescriptor(pSourcePD, &pASFProfile);
if (FAILED(hr))
{
goto done;
}
hr = pMediaSink->QueryInterface(IID_PPV_ARGS(&pASFContentInfo));
if (FAILED(hr))
{
goto done;
}
// Set the profile on the sink.
hr = pASFContentInfo->SetProfile(pASFProfile);
if (FAILED(hr))
{
goto done;
}
*ppMediaSink = pMediaSink;
(*ppMediaSink)->AddRef();
done:
SafeRelease(&pSourcePD);
SafeRelease(&pASFProfile);
SafeRelease(&pASFContentInfo);
SafeRelease(&pMediaSink);
return hr;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wmcontainer.h |
程式庫 | Mf.lib |
Dll | Mf.dll |