建立 ASF 分割器物件

ASF 分割器 物件是 WMContainer 層物件,可剖析進階系統格式的 ASF 資料物件 (ASF) 檔案。 若要建立 ASF 分割器物件的新實例,請呼叫 MFCreateASFSplitter 函式。 此函式會傳回代表空分隔器物件的 IMFASFSplitter 介面指標。

在分割器開始剖析之前,應用程式必須先使用 ASF 標頭物件中的資訊來初始化分割器。 若要初始化分割器,請呼叫 IMFASFSplitter::Initialize 方法。 這個方法會採用 ASF ContentInfo 物件的 指標,其中包含要剖析之 ASF 檔案的標頭資訊。 應用程式必須先初始化 ContentInfo 物件,再將它傳遞至分割器,讓應用程式知道媒體檔案的特性。 分割器的 Initialize 方法會從 ContentInfo 物件擷取資料流程資訊,例如資料流程編號,因此分割器可以剖析資料封包。

範例

下列程式碼範例示範如何建立分割器,並使用現有的 ContentInfo 物件加以初始化。

// Create and initialize the ASF splitter.

HRESULT CreateASFSplitter (IMFASFContentInfo* pContentInfo, 
    IMFASFSplitter** ppSplitter)
{
    IMFASFSplitter *pSplitter = NULL;

    // Create the splitter object.
    HRESULT hr = MFCreateASFSplitter(&pSplitter);

    // Initialize the splitter to work with specific ASF data.
    if (SUCCEEDED(hr))
    {
        hr = pSplitter->Initialize(pContentInfo);
    }
    if (SUCCEEDED(hr))
    {
        // Return the object to the caller.
        *ppSplitter = pSplitter;
        (*ppSplitter)->AddRef();
    }
    SafeRelease(&pSplitter);
    return hr;
}

注意

此範例會使用 SafeRelease 函式來釋放介面指標。

 

ASF 分割器