IGraphBuilder::RenderFile 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 RenderFile
生成一个呈现指定文件的筛选器图。
语法
HRESULT RenderFile(
[in] LPCWSTR lpcwstrFile,
[in] LPCWSTR lpcwstrPlayList
);
参数
[in] lpcwstrFile
指定包含媒体文件名称的宽字符字符串。
[in] lpcwstrPlayList
保留。 必须为 NULL。
返回值
返回 HRESULT。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
部分成功;未呈现音频。 |
|
成功;Filter Graph 管理器修改了筛选器名称以避免重复。 |
|
此电影中的某些流采用不受支持的格式。 |
|
部分成功;此电影中的一些流采用不受支持的格式。 |
|
操作已中止。 |
|
失败。 |
|
参数无效。 |
|
内存不足。 |
|
NULL 指针参数。 |
|
找不到中间筛选器的组合来建立连接。 |
|
无法加载此文件的源筛选器。 |
|
找不到用于呈现流的筛选器组合。 |
|
文件格式无效。 |
|
找不到对象或名称。 |
|
无法识别此文件的媒体类型。 |
|
无法播放文件:不支持格式。 |
注解
如果 lpwstrFile 参数指定媒体文件,则 方法将生成用于默认播放的筛选器图。 首先,它使用 与 IGraphBuilder::AddSourceFilter 方法相同的进程添加可以读取文件的源筛选器。 然后,它会在源筛选器上呈现输出引脚,并在必要时添加中间筛选器。 它按 与 IGraphBuilder::Connect 方法相同的顺序尝试筛选器。
在连接过程中,如果引脚名称以平铺 (~) 开头,则 Filter Graph 管理器将忽略中间筛选器上的引脚。 有关详细信息,请参阅 PIN_INFO。
请注意, RenderFile
方法不会从图中删除任何筛选器。 如果调用 RenderFile
两次,则第二次调用只会向图形添加更多筛选器。 运行图形时,两个源将同时播放。
示例
以下示例呈现一个 AVI 文件以供默认播放:
C++ |
---|
hr = pGraph->RenderFile(L"C:\\Media\\Example.avi", 0); |
C++ |
---|
hr = pGraph->RenderFile(L"http://example.microsoft.com/Example.avi", 0); |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |