2

我创建了 ASP.Net httphandler 来计算 MP3 文件的访问次数。Httphandler 被用于 Web 应用程序以及 ios + android 应用程序。

它在 web + ios 应用程序中运行良好。如果我在三星 Galaxy S 中运行 android 应用程序,则它可以完美播放 MP3 文件,但在三星 Galaxy Ace 手机中无法正常工作。

我不知道我的 asp.net 代码有什么问题。下面是httphandler的代码。

public class MP3DownloadHanlder : IHttpHandler , IRequiresSessionState
  {

      public void ProcessRequest(HttpContext context)
      {
              //Here I increment number of visit by filename in request
              string filename = context.Request.QueryString["Title"] + ".mp3";
              string path = context.Server.MapPath("audio");
              string file = path + "\\" + filename;
              if (System.IO.File.Exists(file))
              {
                  FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
                  context.Response.Buffer = true;
                  context.Response.Clear();
                  context.Response.ClearContent();
                  context.Response.ClearHeaders();
                  context.Response.AddHeader("content-disposition", "attachment; filename=" + filename);
                  context.Response.AddHeader("content-length", fs.Length.ToString());
                  context.Response.ContentType = "audio/mpeg";
                  byte[] bytes = new byte[fs.Length];
                  int bytesToRead = (int)fs.Length;
                  int bytesRead = 0;
                  while (bytesToRead > 0)
                  {
                      int n = fs.Read(bytes, bytesRead, bytesToRead);
                      if (n == 0) break;
                      bytesRead += n;
                      bytesToRead -= n;
                  }
                  bytesToRead = bytes.Length;
                  context.Response.OutputStream.Write(bytes, 0, bytes.Length);
              }

          context.Response.End();
      }

      public bool IsReusable
      {
          get
          {
              return false;
          }
      }
  }
4

2 回答 2

1

没有 的内容处置attachement应该是attachment

于 2012-05-21T19:13:53.360 回答
0

为您的 ContentType 尝试 mime 类型“audio/mpeg3”和“audio/x-mpeg-3”。

还有“audio/mp3”和“audio/x-mp3”。我认为您使用了正确的,但它可能在设备上实施得不好。

于 2012-05-21T19:21:24.557 回答