capboy大侠,我看了你很多文章了,关于这个例子你也有不少评论,能不能给点帮助??

解决方案 »

  1.   

    CMemReader 的 CMediaType::subtype 不对 mpeg2 是那一个?呵呵俺记不清楚了,抱歉。
      

  2.   

    用这个你就知道,这个错误号。显示为Unknow--错误。DirexShow,不能 进一步判断。 那一种具体的错误。
            #define DXTRACE_ERR(str,hr)
              DXTrace( __FILE__, (DWORD)__LINE__, hr, str, TRUE )
    HRESULT hr;
    hr = 0x80070102;
    DXTRACE_ERR( TEXT("COM创建实例"), hr );
         要不,程序让我给你。看看!!贴出关键的源码!!!!
      

  3.   

    等待的操作过时。使用vc的tools的error lookup看就知道了.
    改变CMediaType就可以了.
    MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_TRANSPORT, Format_None
    MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_PROGRAM, Format_None
      

  4.   

    不过这个是vc给的.你可以自己具体的查查directx的文档.
      

  5.   

    CMediaType要改,但远远不够,
    还要自己写联结过程,
    将SourceFilter的Pin剥出,再创建mpeg2的流分裂接口pin.
    将其联结,其他的和播放mpeg1一样了.
      

  6.   

    LJN(没有人; 能请教,用DShow播放mpeg-2的解码器码?我下载PowerDVD,它能播放vob文件,但是不能与DShow兼容。
      

  7.   

    Atl_lover(狂风): 
    我这里有下载的MPEG2解码器,该解码器在右上角有个方块消不掉:
    http://www.moonlight.co.il/download/EMpgDec140.zip
    LJN(没有人) :
          你的方法我没学会,directx我刚接触。
    CapBoy:
        你说的error lookup里面没有关于这个错误号的提示,是不是我有什么东东没有安装?
        我把CMediaType改为GUID_NULL就可以播放DVD了:)
     
    谢谢多位大侠的关注!!
    我的例子已经可以播放了,在局域网上,用UDP协议播放VCD时效果非常的好,播放DVD时,有的地方会有延时。
    我的思想是这样的:
       发送端接收播放指令,向指定端口、IP发送数据包,
       客户端根据缓冲区大小发送请求指令,然后等待接收。
       两端的发送接收都是用一个线程完成的,不会丢包,但是延时较大。
       后来客户端改为两个线程,就出现了丢包现象,目前正在修改两端通讯协议:)  
    我例子的源码比较丑,不好意思贴出来:)
    再次感谢诸位关注,前几天忙着改程序,没来照应还望多多见谅!!
      

  8.   

    LJN(没有人) :
    好像不要这么的麻烦的...你使用AddFilter把filter加入,在render就可以了.虽然可以手动连接,可是既然dshow体系提供了更好更省事的方法,为什么不使用呢?手动的连接只是在默认的render不成功的时候在考虑使用的.只是我自己的看法而已.
      

  9.   

    源码能发来瞧瞧吗?[email protected]