创建 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 拆分器