directshow 播放DVD
小弟用了POWERDVD的解码器
但是在RenderDvdVideoVolume(filename,nil)时,怎么也不成功。
返回 The specified DVD volume to be played does not exist.
filename是一个VOB文件
用GRAPHEDIT 用这样的可以成功。但我不知道怎么样才能用程序实现。
AC3 -------AUDIO DCODER----。。。。
这样可以:CYBERLINK DVD NAVIGATOR {
VIDEO-------VIDEO DCODER----。。。。
请教各位大侠,我怎么在程序中使用它的DVD NAVIGATOR FILTER?
谢了
给出方法或代码。
另开贴子加200分
问题点数:100、回复次数:6Top
1 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2003-08-01 14:13:12 得分 30
\DXVCSDK\samples\Multimedia\DirectShow\DVD\DVDSample\dvdcore.cpp当中有例子
参考一下吧。
传递NIL恐怕不可以。
Top
2 楼xuziling20(徐子)回复于 2003-08-01 14:55:13 得分 0
to happy__888([顾问团]寻开心):
SDK的例子我看过了,用它的DVDSAMPLE也不能播放。VOB的文件啊。可是豪杰和POWERDVD都可以。Top
3 楼xuziling20(徐子)回复于 2003-08-01 14:57:05 得分 0
我上面写错了,我用的是
RenderDvdVideoVolume(FILENAME,AM_DVD_SWDEC_PREFER,Status);
不行的。Top
4 楼xuziling20(徐子)回复于 2003-08-01 15:05:00 得分 0
请各位帮帮忙Top
5 楼Afile(猎头炳)回复于 2003-08-02 01:34:41 得分 70
POWERDVD的过滤器有两个问题,一是不能在DEBUG编译方式下的应用程序里使用,虽然你可以声明出POWERDVD所用的Cyberlink Video Decoder过滤器来,但是如果你的编译方式是DEBUG的话,并在IDE环境里运行的话,会在建立实例的时候出错。解决的方法自然是编译好后去运行执行文件。就算你没有自已使用CoCreateInstance来手动建立这个实例而是使用ReanderStream或是RenderDvdVideoVolume,也会由于这个过程中会试图建立解码过滤器实例而失败。编译为发布版本就好了。
第二个问题才是要命的,不知道那个高手解决了,就是这个实例只能进行一次播放,而且还不能free或是release这个实例再建一个新的来放!我不知道我错在那里,但是如果我第一次播放停止了以后再建一个新的图表也不行。WINDVD和CINEPLAYER的过滤器就不错,我的程序里已经改为选择WINDVD的过滤器了。Top
6 楼xuziling20(徐子)回复于 2003-08-02 10:49:24 得分 0
谢了 Afile(猎头炳) ,我用WINDVD的过滤器试下。Top
7 楼xuziling20(徐子)回复于 2003-08-04 09:43:46 得分 0
请其它高手给点建议Top




