2011-07-07 31 views
2

我想在asp.net中进行渐进式视频流式传输。我已经写了一个代码,但仍然没有正确加载。有没有关于它的想法。asp.net中视频的渐进式流式传输

请看看我的代码或建议我最好的方法来做到这一点。我不希望播放器等待下载整个视频,然后开始播放。我想现在就开始玩。

以下是我的代码。

string path = "Test.mp4"; 
      string rootpath = Server.MapPath(Request.ApplicationPath); 
      string file = string.Format(@"{0}\\{1}", rootpath, path); 
      if (File.Exists(file) && file.Contains("mp4")) 
      { 
       FileStream filestream = new FileStream(file, FileMode.Open, FileAccess.Read); 
       long length = filestream.Length; 

       Response.AppendHeader("Content-Type", "video/mp4"); 
       Response.AddHeader("Content-Disposition", "attachment; filename=" + path + ""); 
       Response.AppendHeader("Content-Length", length.ToString()); 

       const int buffersize = 16384; 
       byte[] buffer = new byte[buffersize]; 

       int count = filestream.Read(buffer, 0, buffersize); 

       while (count > 0) 
       { 
        if (!Response.IsClientConnected) 
         count = -1; 
        else 
        { 
         Response.OutputStream.Write(buffer, 0, count); 
         Response.Flush(); 
         count = filestream.Read(buffer, 0, buffersize); 
        } 
       } 
      } 

此致 Jalpesh

回答

1

Content-Disposition头用于指示浏览器提供一个Save As对话框附加的文件。可能不是你想要的行为。你尝试删除它吗?

2

我有同样的问题,并最终实施'范围特定请求'。 Check this article on dotNetSlackers。它有用于流式传输MP4文件的示例代码。此解决方案在iPad,iPhone和Chrome上运行良好!