【问题标题】:media player cannot play next song in listbox媒体播放器无法播放列表框中的下一首歌曲
【发布时间】:2015-03-16 17:43:46
【问题描述】:
If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsMediaEnded Then

 ListBox1.SelectedIndex += 1

 AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem

 AxWindowsMediaPlayer1.Ctlcontrols.play()
End If

它改变了列表框的索引,但它不播放下一个文件。 该文件存在,正常播放没有问题。 有谁知道怎么回事?

【问题讨论】:

  • 可能与playState 测试有关。当启动或停止媒体文件时,播放状态会经历许多状态。该代码在哪里?
  • 我已经弄明白了。 .呵呵
  • ListBox1.SelectedIndex += 1 AxWindowsMediaPlayer1.URL = path(ListBox1.SelectedIndex) AxWindowsMediaPlayer1.Ctlcontrols.play()

标签: vb.net


【解决方案1】:

解决办法是必须加定时器"

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
  Dim item As Integer
  item = ListBox1.SelectedIndex
  If Form1.AxWindowsMediaPlayer1.playState = WMPPlayState.wmppsStopped Then
    Me.ListBox1.SelectedIndex = item + 1
    Form1.AxWindowsMediaPlayer1.URL = FileUrls(ListBox1.SelectedIndex)
    Timer1.Start()
  Else
    Timer1.Start()
  End If
end sub

以下代码也可以工作。首先将计时器添加到播放列表并通过以下代码

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) 处理 Timer1.Tick

    If Form1.AxWindowsMediaPlayer1.playState = WMPPlayState.wmppsStopped Then



        If ListBox1.SelectedIndex < ListBox1.Items.Count - 1 Then
            ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1

               form1.axwindowmediaplayer1.url=listbox1.selectedindex
        Else
           'do nothing if no item to play 
        End If
    End If


End Sub

【讨论】:

  • 为什么必须在滴答事件中启动计时器?它已经在运行了,不是吗?
  • 我创建媒体播放器我所做的事情我将计时器添加到播放列表和 eneble = true 然后我使用我的代码自动选择下一首歌曲它的工作。我开始计时器以在歌曲停止时进行间隔意味着歌曲结束,计时器开始并选择另一个索引到列表框..抱歉英语不好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 2013-01-14
  • 2020-07-28
相关资源
最近更新 更多