Воспроизведение радио с использованием файла .pls с помощью потоковой передачи по http в окне телефона - PullRequest
2 голосов
/ 19 декабря 2011

Мне нужно воспроизвести аудиофайл, который является URL-адресом и относится к формату файла (.pls) в Windows Phone 7. У меня есть URL (http://174.36.167.220:9000/) аудио, предназначенный для воспроизведения радио. Я реализовал код для этого он работает, но звук идет очень быстро, тогда как при обычном воспроизведении аудиофайла. Другие звуковые URL, которые я пробовал использовать мой код, и он работает нормально

Я использовал код, который я загружаю из сети, и я не могу включить сюда этот код, потому что он содержит три файла классов в папке shoutcast

Я проигрываю аудиофайл с URL, передавая по 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

Пожалуйста, помогите мне. заранее спасибо

Ответы [ 2 ]

0 голосов
/ 02 февраля 2015

.pls плейлист не поддерживается в элементах мультимедиа Windows, мы должны проанализировать содержимое и получить URL-адреса потоков, здесь я передаю URL-адрес pls для работы и получаем все 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;
        }
    }
0 голосов
/ 20 апреля 2013

Я не думаю, что вам нужно реализовать весь потоковый слой с нуля в этом сценарии, потому что у вас есть поток MP3 32 Кбит / с.Используете ли вы фоновый аудиоагент или MediaElement, оба могут транслировать контент - просто установите в качестве источника URL-адрес, о котором вы говорите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...