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 源创建媒体接收器。 此示例将流配置设置从源复制到 ContentInfo 对象,该对象表示输出文件的 ASF 标头对象。
// 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 |
Library | Mf.lib |
DLL | Mf.dll |