IDvdGraphBuilder::RenderDvdVideoVolume 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 RenderDvdVideoVolume
根据用于播放 DVD-Video 卷的用户规范完成筛选器图的生成。
语法
HRESULT RenderDvdVideoVolume(
[in] LPCWSTR lpcwszPathName,
[in] DWORD dwFlags,
[out] AM_DVD_RENDERSTATUS *pStatus
);
参数
[in] lpcwszPathName
指向要播放的 DVD-Video 卷的路径的指针。 可以为 NULL。
[in] dwFlags
AM_DVD_GRAPH_FLAGS枚举中的标志的按位 OR,指定如何生成 DVD 播放图。
[out] pStatus
指向 AM_DVD_RENDERSTATUS 结构的指针。 当 方法返回时,结构指示任何呈现失败。
返回值
返回一个 HRESULT 值,该值取决于接口的实现。 DirectShow 实现返回值包括:
返回代码 | 说明 |
---|---|
|
dwFlags 参数指定冲突的选项。 |
|
方法部分成功。 若要找出发生了哪些错误,请检查 pStatus 参数。 |
|
方法成功,并且已呈现所有流。 |
|
无法呈现一个或多个流。
如果在 dwFlags 参数中指定了 AM_DVD_HWDEC_ONLY 或 AM_DVD_SWDEC_ONLY 标志,请尝试使用 AM_DVD_HWDEC_PREFER 或 AM_DVD_SWDEC_PREFER 标志再次调用 方法。 |
|
筛选器图已包含视频呈现器。 如果在 dwFlags 参数中指定AM_DVD_EVR_ONLY标志,但图形中已包含增强视频呈现器 (VMR) 筛选器以外的视频呈现器,则方法将返回此错误代码。 |
|
生成图形时出错。 例如,DVD Graph 生成器无法创建所需的筛选器或无法呈现任何流。 |
|
筛选器图包含多个视频呈现器。 |
注解
AM_DVD_RENDERSTATUS结构反映此方法的失败代码。 此方法返回S_FALSE的原因包括:
- 图形已完全生成,但以下情况之一是正确的。
- 覆盖混合不起作用 - 应用程序未设置AM_DVD_NOVPE标志,并且无法通过覆盖混音器放置视频流。 在这种情况下,如果在软件中解码视频,应用程序将具有足够的信息来通知用户视频将不可见。 硬件解码的视频仅在连接到硬件视频解码器的 NTSC 输出端口的电视上可见。
- 视频解码器不生成第 21 行数据。 应用程序可以显示一条警告或信息性消息,指出隐藏式字幕由于解码器而不可用。
- 未指定卷路径,并且 DVD 导航器未找到要播放的任何 DVD-Video 卷。 如果播放开始时驱动器中没有任何可用,应用程序可以要求用户插入 DVD-Video 光盘。
- 某些流未呈现。 应用程序可以向用户指示某些流无法播放。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |