2

MP3 ファイルのアクセス数をカウントする ASP.Net httphandler を作成しました。Httphandler は、Web アプリケーションだけでなく、ios + android アプリケーションでも使用されています。

Web + ios アプリケーションで正常に動作しています。Samsung Galaxy S で Android アプリケーションを実行すると、MP3 ファイルは完全に再生されますが、Samsung 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

のContent-Dispositionはありませんattachement。する必要がありますattachment

于 2012-05-21T19:13:53.360 に答える
0

ContentType に「audio/mpeg3」と「audio/x-mpeg-3」の MIME タイプを試してください。

また、「audio/mp3」と「audio/x-mp3」。正しいものを使用したと思いますが、デバイスでの実装が不十分である可能性があります。

于 2012-05-21T19:21:24.557 に答える