WindowsMediaPlayer автоматический переход к след. файлу
От: Cicero www.ya.ru
Дата: 25.09.15 19:10
Оценка:
Делаю некий примитивный аудио плеер, использую WindowsMediaPlayer:
...
using WMPLib;
... 
WindowsMediaPlayer wp = new WindowsMediaPlayer();
...


Список файлов хранится в ListBox.
Запуск, пауза, остановка по нажатию кнопки, переход к другому файлу по клику на ListBox работает как надо.
Хочу сделать переход к проигрыванию следующего файла после окончания текущего.
Отслеживаю события, и если достигается конец файла, перехожу к следующему:
... 
wp.PlayStateChange +=wp_PlayStateChange;
...
private void wp_PlayStateChange(int NewState)
        {
            
            switch (NewState)
            {
...
                case 8:    // MediaEnded
                   
                    wp.controls.stop(); // пробовал принудительно останавливать - не помогает
                   
                    wp.close(); // сегодня вычитал и добавил - должно было помочь
                    PlayListBox.SelectedIndex++;
                    PlayListBox.Select();
                    wp.URL = PlayFolderBrowserDialog.SelectedPath + "\\" + PlayListBox.SelectedItem.ToString();
                    wp.controls.play();

                    break;

...

        }


Все срабатывает.
Событие наступает, код отрабатывает, ListBox переходит на следующую строчку, в wp.URL правильный путь, но проигрывание не начинается.
Выжидаю какое то время за которое уже должно было точно начаться и нажимаю вручную кнопку у которой всего одна строка:
        private void MP3StartButton_Click(object sender, EventArgs e)
        {
            wp.controls.play();

        }


И все! Песня! Следующая, которая ожидалась.

Подскажите плз, что я не так делаю?
P.S.
События которые происходят после достижения конца файла:
После нажатия кнопки Play:
O tempora! O mores!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.