2011-12-19 28 views
2

我必須播放音頻文件,這是URL,它涉及(.pls)窗口電話7中的文件格式我有網址(http://174.36 .167.220:9000 /)用於收音機播放的音頻。我已經實現了它的工作代碼,但聲音非常快,然後正常播放音頻文件。其他音頻網址我有嘗試使用我的代碼和它的工作的罰款播放電臺使用.pls文件通過http流在窗口電話7

我用這是我從網上下載的代碼,因爲它具有文件夾Shoutcast的在三個類文件我不能在這裏包括代碼

我正在播放通過HTTP流式傳輸的音頻文件,具有以下詳細信息:

Server Status: Server is currently up and public. 
Stream Status: Stream is up at 32 kbps with 119 of 4000 listeners (116 unique) 
Listener Peak: 1518 
Average Listen Time: 3h 10m 39s 
Stream Title: 670 am KIRN 
Content Type: audio/mpeg 

請任何人幫助我。在此先感謝

回答

0

我不認爲你需要在這種情況下從零開始實施整個流層,因爲你有什麼是一個32kbps的MP3流。無論您使用背景音頻代理還是使用MediaElement,都可以傳輸內容 - 只需將源代碼設置爲您正在討論的URL即可。

0

.pls播放列表不支持在windows media元素中,我們必須解析內容並獲取流url,在這裏我傳遞一個url函數並獲取所有流url作爲列表,我們可以將media元素源指向任何url並會播放收音機

public static async Task<List<string>> GetStreamsFromPLSUrl(string url) 
    { 



     var httpClientHandler = new HttpClientHandler { UseDefaultCredentials = false, AllowAutoRedirect = true }; 

     HttpClient httpClient = new HttpClient(); 



     try 
     { 


      HttpResponseMessage response = await httpClient.GetAsync(url); 
      response.EnsureSuccessStatusCode(); 

      TextReader tr = new StreamReader(await response.Content.ReadAsStreamAsync()); 
      List<string> Streamurls = new List<string>(); 

      string line; 
      while ((line = tr.ReadLine()) != null) 
      { 
       if (line.Substring(0, 4).Equals("File")) 
        Streamurls.Add(line.Substring(6)); 
      } 

      return (Streamurls); 
     } 

     catch (Exception ex) 
     { 
      System.Diagnostics.Debug.WriteLine(ex.Message + "/n" + ex.InnerException); 
      return null; 
     } 
    }