Vic91 Ответов: 1

Как я могу должным образом управлять воспроизведения, редактор списков воспроизведения, используя AxWindowsMediaPlayer?


Привет,

Я делаю mp3-плеер с помощью AxWindowsMediaPlayer, но я не понял, как заставить одну песню воспроизводиться, а затем другую, без использования wmp.playlist. И когда я попытался использовать плейлист, у меня возникла проблема. У меня есть список с файлами в списке воспроизведения, и я хочу иметь возможность дважды щелкнуть элемент и воспроизвести его. Если я изменю player.currentMedia в событии listbox1.doubleClick, игрок забывает о предыдущем списке воспроизведения и просто воспроизводит один файл до его завершения. Я попытался сравнить индекс playlist.item со списком listbox.selectedindex, а затем перейти к следующей (или предыдущей) песне столько раз, сколько необходимо, чтобы добраться до нужной песни, выбранной в списке. Я придумал этот код, но он не работает должным образом, он просто переходит к следующему элементу в списке воспроизведения всякий раз, когда я дважды щелкаю любой элемент в списке.
If Player.playState = WMPPlayState.wmppsPlaying Then 'And TrackBar1.Value = 1 Then
            For i = 0 To Player.currentPlaylist.count - 1
                If Player.currentMedia.isIdentical(Player.currentPlaylist.Item(i)) Then
                    If i < ListBox1.SelectedIndex Then
                        MsgBox(i.ToString + vbCrLf + ListBox1.SelectedIndex.ToString)
                        While i < ListBox1.SelectedIndex
                            Player.Ctlcontrols.next()
                            i += 1
                        End While
                    End If
                    If i > ListBox1.SelectedIndex Then
                        While i > ListBox1.SelectedIndex
                            Player.Ctlcontrols.previous()
                            i -= 1
                        End While
                    End If
                    'Label3.Text = "Currently Playing Media Index: " & i.ToString
                    'MsgBox("Currently Playing Media Index: " & i.ToString)
                End If
            Next
        End If

Если индекс списка воспроизведения больше, чем listbox.selectedindex (я выбрал песню, которая находится перед той, которая играет), она работает просто отлично. Это когда я пытаюсь выбрать песню, которая идет после той, что играет, она не работает. Есть идеи?
Я искал в интернете примеры, но нашел только простой код, который воспроизводит одну песню. Ничего о циклической игре или перетасовке или о чем-то еще.
Если у кого-то есть лучшее представление о том, как я мог бы это сделать, это было бы очень полезно для меня!

1 Ответов

Рейтинг:
1

Beeftronix

Public Sub PlayNext()
Попробуй
ColorSliderProgress.Значение = 0
Если не ListBox2. SelectedIndex < 0, то
Если ListBox1. SelectedIndex > ListBox1.Предметы.Тогда Считай-1
ListBox1. SelectedIndex = ListBox1.SelectedIndex + 1
AxWindowsMediaPlayer1. URL = ListBox1.SelectedItem
AxWindowsMediaPlayer1.Ctlcontrols.играть()
Конец, Если
Конец, Если

Поймать ex как исключение

Конец Попытки