2012-05-21 84 views
2

我創建ASP.Net的HttpHandler來算MP3文件的訪問次數。 Httphandler正在web應用程序以及ios + android應用程序中使用。淨的HttpHandler沒有Android設備工作

它工作在網絡+ iPhone應用程序的罰款。如果我在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; 
      } 
     } 
    } 

請幫幫我。這對我來說

問候迫切, 病毒

回答

1

沒有內容處置的attachement。它應該是attachment

+0

對不起,這是我的拼寫錯誤。我只是糾正它。但仍然沒有運氣 – Viral

+0

什麼是它失敗的示例文件名? – SliverNinja

0

嘗試爲您的ContentType使用mime類型「audio/mpeg3」和「audio/x-mpeg-3」。

還有「音頻/ mp3」和「音頻/ x-mp3」。我認爲你已經使用了正確的一個,但它可能在設備上執行得不好。

+0

最後,我通過更改內容處置標題來應對。 context.Response.AddHeader(「content-disposition」,「inline; filename =」+ filename); 我只需要更改附件內聯,它是在所有的Android設備現在的工作。 謝謝大家的幫助 – Viral

相關問題