C# Media Player (WMP) Автоматическая следующая песня

Мне нужно, чтобы плеер автоматически переходил к следующей песне в listBox и воспроизводил ее, но она не будет воспроизводиться. У меня он там, где он переходит к следующей песне, но когда он меняется, он не начинает играть. Вот фрагмент кода:

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();
}

Он переходит к следующей песне, но, как было сказано ранее, просто не воспроизводится.

Как я могу заставить его играть?


person jermy9999    schedule 29.10.2013    source источник
comment
Я решил проблему.   -  person jermy9999    schedule 01.11.2013
comment
Джерми, как решить, у меня такая же проблема?   -  person QViet    schedule 28.10.2014


Ответы (1)


Вы можете использовать обработчик событий 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
                }));
            }
        }
    }
person Mohamad Hedayati    schedule 01.02.2016