使用XAML媒体元素Windows Phone 8.1播放.pls文件

时间:2014-07-24 14:15:39

标签: c# xaml windows-phone-8.1 win-universal-app

我需要一些帮助来尝试制作Windows Phone 8.1应用程序。

我试图使用XAML媒体元素播放shoutcast流。我使用以下代码在Windows 8商店应用程序中使用它:

<MediaElement x:Name="media" Source="http://37.187.79.56:3078/listen.pls;" Width="300" AudioCategory="BackgroundCapableMedia" CurrentStateChanged="MusicPlayer_CurrentStateChanged" />

但对于Windows手机来说,它不起作用。至少在我的模拟器中,但我没有物理设备可以测试,但模拟器播放Cortana声音所以它应该播放。

有人可以帮我解决问题吗? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

你不能在WP8中播放.pls文件,只能在this page中列出这些媒体编解码器。 要播放shoutcast电台,您需要使用Shoutcast MediaStreamSource。您可以查看示例here。希望它有所帮助。

答案 1 :(得分:0)

Windows媒体元素不支持.pls播放列表我们必须解析内容并获取流网址,这里我传递一个pls 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;
        }
    }