创建 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 函数释放接口指针。
相关主题