我正在使用Microsoft Visual Studio 2017中的Vb.NET创建Windows窗体应用程序,该应用程序连续检查具有500多个站点的在线广播平台中在线广播流的状态。我们尝试使用10个Windows Media Player控件来一次检查10个流的状态,以节省运行此应用程序时的检查时间。 为了检查流的存在,我们使用以下命令:
"AxWindowsMediaPlayer1.network.bitRate"
在PlaystateChange
事件处理程序中,将比特率数字保留在表单的标签控件中。
如果比特率数字不是0
,则应具有流已存在的含义。
顺便说一下,我们发现此应用程序存在以下问题:
此应用程序仅在某些流上运行良好,但对于某些流,似乎WMP无法检测到该流并始终显示bitrate = 0
,而VLC或其他应用程序可以播放它没问题。
对于某些流,我们必须等待很长时间才能WMP识别该流并提供比特率编号。
对于某些流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个流时,我们可以获得大多数流的比特率。
我想知道解决这些问题的方法如下吗?
我不确定检查流状态的方法是否正确。以及为什么WMP无法为该应用程序提供可靠的结果。
在为此应用程序使用WMP之前,我们可以做任何设置吗?
我们应该将播放器更改为其他播放器吗?
私有子AxWindowsMediaPlayer1_PlayStateChange(作为对象发送,作为_WMPOCXEvents_PlayStateChangeEvent发送)处理AxWindowsMediaPlayer1.PlayStateChange
如果lblBitRate1.Text = 0,则lblBitRate1.Text = AxWindowsMediaPlayer1.network.bitRate.ToString
结束子