共用方式為


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

另請參閱

MFCreateASFStreamingMediaSinkActivate

媒體基礎函式