1

我需要播放器自动转到列表框中的下一首歌曲并播放它,但它不会播放。我有它去下一首歌曲的地方,但是当它改变时它不会开始播放。这是代码片段:

if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
    if (listBox1.SelectedIndex != listBox1.Items.Count - 1)
    {
        listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
    }
}

我对“下一个”和“上一个”按钮使用相同的方法,并且效果很好。

我也试过这个:

if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
    listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
    axWindowsMediaPlayer1.Ctlcontrols.play();
}

它转到下一首歌曲,但如前所述,只是不播放。

我怎样才能让它玩?

4

1 回答 1

2

您可以使用 PlayStateChange 事件处理程序:

 private void WindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
    {
if (e.newState == 1)
        {
            if (listBox1.SelectedIndex != listBox1.Items.Count - 1)
            {
                BeginInvoke(new Action(() => {
                    listBox1.SelectedIndex = listBox1.SelectedIndex + 1
                }));
            }
        }
    }
于 2016-02-01T05:12:12.303 回答