WINFORM:
最近做了一个播放器,用remoting在服务器上读取视频文件,然后用filestream写到本地播放。
现在只能是全部下载完毕才能播放,请问如何才能用缓冲播放? 例如设置下载20%开始播放,后台进行缓冲。
用 QuartzTypeLib或AxMediaPlayer实现都可以。 需要缓冲功能的实现希望各位达人帮助。

解决方案 »

  1.   

    QuartzTypeLib本来就是流模式读取的,不需要下载完毕,我都用了1年多了
    http://www.codeproject.com/KB/directx/directshowmediaplayer.aspx
      

  2.   

    我这里会报错...
    m_objFilterGraph.RenderFile(openFileDialog.FileName);
    和你用的方法是一样的。。这里传得是文件全路径。。 但是如果我的文件还没下完的话文件无法播放
      

  3.   

    'System.Runtime.InteropServices.COMException' のハンドルされていない例外が DirectShow.exe で発生しました。追加情報 : HRESULT からの例外です : 0x80040218。如果没下载完毕就播放的话就会报这个异常我用你的代码里也是这种情况如果支持的话。。会不会和文件权限有关?
      

  4.   

    如果下载一半就把流关闭的话。。视频文件用其他的播放器:如暴风影音等也都打不开。。提示文件损坏。。
    是否是在用流传文件的地方需要改?
    FileStream read= (FileStream)p.GetStream();
    string path=@"D:\PRACTICE\Play\test.avi";
    FileStream write= new FileStream(path,FileMode.OpenOrCreate,FileAccess.ReadWrite);
    byte[] byData = new byte[1024];

    while(write.Length<read.Length)
    {
    read.Read(byData,0,1024);
    write.Write(byData,0,1024);
    }
    read.Close();
    write.Close();
    这是我用流传文件的方法
      

  5.   

    我直接 Response.BinaryWrite...