如何使用Windows Media Player检查几个在线广播流?

时间:2019-02-17 07:09:52

标签: windows vb.net windows-media-player

我正在使用Microsoft Visual Studio 2017中的Vb.NET创建Windows窗体应用程序,该应用程序连续检查具有500多个站点的在线广播平台中在线广播流的状态。我们尝试使用10个Windows Media Player控件来一次检查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. 我们应该将播放器更改为其他播放器吗?

    私有子AxWindowsMediaPlayer1_PlayStateChange(作为对象发送,作为_WMPOCXEvents_PlayStateChangeEvent发送)处理AxWindowsMediaPlayer1.PlayStateChange

    如果lblBitRate1.Text = 0,则lblBitRate1.Text = AxWindowsMediaPlayer1.network.bitRate.ToString

    结束子

0 个答案:

没有答案