Как использовать проигрыватель Windows Media для проверки нескольких потоков онлайн-радио? - PullRequest
0 голосов
/ 17 февраля 2019

Я использую Vb.NET в Microsoft Visual Studio 2017 для создания приложения формы Windows, которое постоянно проверяет состояние потоков онлайн-радио на платформе онлайн-радио, которая имеет более 500 станций.Мы пытаемся использовать 10 элементов управления проигрывателя Windows Media для проверки состояния 10 потоков одновременно, чтобы сэкономить время проверки при запуске этого приложения.Для проверки существующих потоков мы используем команду:

"AxWindowsMediaPlayer1.network.bitRate"

В обработчике событий PlaystateChange и сохраняем номер битрейта в элементе управления меткой в ​​форме.

Еслибитрейт не равен 0, это должно означать, что поток существует.

Кстати, мы обнаружили проблемы этого приложения следующим образом:

  1. Это приложение работает хорошо только для некоторых потоков, но для некоторых потоков кажется, что WMP не может обнаружить поток и показать bitrate = 0 все время, пока VLC или другое приложение может воспроизвести его без каких-либо проблем.

  2. Для некоторого потока нам придется долго ждать, прежде чем WMP распознает поток и даст номер битрейта.

  3. Длянекоторый формат URL потока, такой как

    "http://210.246.250.53:xxxx/;stream.mp3" (xxxx - номер порта, который зависит от потока)

Мы обнаружили, что не можем проверитьих, поместив URL-адрес в несколько WMP в тон же.Битрейт, который мы получили, всегда равен 0.Например:

http://210.246.250.53:9002/;stream.mp3 to AxWindowsMediaPlayer1.url
http://210.246.250.53:9004/;stream.mp3 to AxWindowsMediaPlayer2.url
http://210.246.250.53:9006/;stream.mp3 to AxWindowsMediaPlayer3.url
http://210.246.250.53:9008/;stream.mp3 to AxWindowsMediaPlayer4.url
http://210.246.250.53:90010/;stream.mp3 to AxWindowsMediaPlayer5.url

Если мы сделаем это, каждый WMP даст число битрейта = 0. Но когда мы пытаемся разместить URL этих потоков для проигрывателя только по 1 потоку за раз, мыможет получить число битрейта для большей части потока.

Могу ли я поинтересоваться, как решить эти проблемы следующим образом:

  1. Я не уверен, является ли способмы делаем для проверки статуса потока корректно или нет.И почему WMP не может дать надежный результат для этого приложения.

  2. Можно ли выполнить какие-либо настройки перед использованием WMP для этого приложения?

  3. Должны ли мы сменить игрока на других?

    Приватный Sub AxWindowsMediaPlayer1_PlayStateChange (отправитель как объект, e как _WMPOCXEvents_PlayStateChangeEvent) Обрабатывает AxWindowsMediaPlayer1.PlayStateChange

    *lbB0.Text = AxWindowsMediaPlayer1.network.bitRate.ToString

    end sub

...