【问题标题】:playing radio using .pls file by http streaming in window phone 7在window phone 7中通过http流使用.pls文件播放广播
【发布时间】:2015-02-02 17:51:57
【问题描述】:

我必须播放作为 URL 的音频文件,它与 windows phone 7 中的 (.pls) 文件格式有关,我有音频的 url(http://174.36.167.220:9000/) .我已经实现了它的工作代码,但声音的速度非常快,然后是音频文件的正常播放。我尝试使用我的代码的其他音频 url 并且工作正常

我使用了从网上下载的代码,我不能在此处包含该代码,因为它在文件夹中包含三个类文件shoutcast

我正在通过 HTTP 流式播放来自 URL 的音频文件,其中包含以下详细信息

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

请任何人帮助我。提前谢谢

【问题讨论】:

    标签: c# windows-phone-7


    【解决方案1】:

    我认为您不需要在这种情况下从头开始实现整个流媒体层,因为您拥有的是 32kbps MP3 流。无论您使用后台音频代理还是 MediaElement,都可以流式传输内容 - 只需将源设置为您正在谈论的 URL。

    【讨论】:

      【解决方案2】:

      .pls 播放列表在 windows 媒体元素中不受支持,我们必须解析内容并获取流 url,在这里我传递一个 pls url 来运行并获取所有流 url 作为列表,我们可以将媒体元素源指向任何 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;
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2016-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-02
        • 2011-04-30
        • 2012-03-24
        • 1970-01-01
        相关资源
        最近更新 更多