Я создаю приложение для малых форм в VB.Net 2019, которое будет сканировать мой жесткий диск на наличие файлов MP3, а затем воспроизводить их в случайном порядке. В этот момент я сканирую свой диск и загружаю все в два списка (один для пути, один для имени файла, потому что я также хочу экспортировать в CSV). Где-то в будущем эти данные попадут в базу данных с дополнительной информацией, чтобы я мог случайным образом выбрать жанр музыки, который я хочу играть в данный момент.
Когда я нажимаю кнопку cmdRandom, начинает воспроизводиться первый файл, но когда я хочу продолжить со следующего случайного файла, файл ищется и загружается в медиаплеер, но не начинает воспроизведение (мне нужно нажать «воспроизведение» вручную) . Вот мой код:
Private Sub cmdRandom_Click(sender As Object, e As EventArgs) Handles cmdRandom.Click
intaantal = ListBox2.Items.Count
Randomize()
PlayMedia()
End Sub
Private Sub PlayMedia()
intNumber = CInt(Int((intAantal * Rnd()) + 1))
ListBox1.SelectedIndex = intNumber
ListBox2.SelectedIndex = intNumber
FileName = ListBox1.SelectedItem.ToString() + "\" + ListBox2.SelectedItem.ToString()
lblSongText.Text = FileName
' mPlayer.URL = ""
' mPlayer.Refresh()
' mPlayer.close()
' mPlayer.settings.autoStart = True
' mPlayer.settings.setMode("loop", True)
' mPlayer.Ctlcontrols.play()
mPlayer.URL = FileName
End Sub
Private Sub mPlayer_PlayStateChange(sender As Object, e As _WMPOCXEvents_PlayStateChangeEvent) Handles mPlayer.PlayStateChange
If mPlayer.playState = mPlayer.playState.wmppsMediaEnded Then
PlayMedia()
End If
End Sub
Все закомментированные элементы в PlayMedia() уже протестированы, но не работают. Я думал, что добавление mPlayer.Ctlcontrols.play() в функцию mPlayer_playStateChange() в предложении else текущего if будет работать, но это дает мне ошибку компиляции (кажется не допускается в этом случае).
Что я делаю неправильно?