Распространение воспроизведения звука с помощью MediaElement в WPF

#wpf #vb.net #mediaelement

#wpf #vb.net #mediaelement

Вопрос:

Я разрабатываю видеопроигрыватель с помощью WPF.(в VB)

Я уже создал MediaElement, ListBox, кнопку «Далее»,

затем начните воспроизведение через список чтения,

и используйте «Далее», чтобы перейти к следующему аудио / видео.

В событии «MediaEnded» я просто копирую весь код в кнопку «Далее».


Теперь возникает проблема,

Предположим, что в списке есть четыре аудиозаписи (.mp3), «test1.mp3», «test2.mp3», ……

теперь воспроизводится «test1.mp3», я нажимаю кнопку «Далее», затем теперь воспроизводится «test2.mp3».

Однако, когда я просто разрешаю воспроизведение «test1.mp3» завершено, мой проигрыватель не будет воспроизводить «test2.mp3»,

он воспроизводит «test3.mp3» или другие в случайном порядке.

Эта ситуация, подобная событию «MediaEnded», обрабатывалась много раз.


 Private Sub MediaElement1_MediaEnded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MediaElement1.MediaEnded

    nextmedia()

End Sub
  

 Private Sub nextmedia()

    Try
        'pi is play index, start from 1, 0 is non playing
        If pi <> 0 Then
            If pi = ListBox_temp.Items.Count Then

                Dim filename As String = ListBox_temp.Items.Item(0).ToString
                MediaElement1.Source = New Uri(filename)
                pi = 1

            Else

                Dim filename As String = ListBox_temp.Items.Item(pi).ToString
                MediaElement1.Source = New Uri(filename)
                pi = pi   1

            End If
        End If

    Catch ex As Exception

    End Try
    Window1.Title = "Video Sampler - "   CStr(pi)   ". "   CStr(ListBox1.Items.Item(pi - 1))
End Sub
  

Кто может мне помочь….

Комментарии:

1. «Кто может мне помочь»: никто, если вы не опубликуете какой-либо код…

Ответ №1:

Я не тестировал это, но попробуйте следующее.

 Try 
    pi = If(pi < ListBox_temp.Items.Count - 1, pi   1, 0)
    Dim filename As String = ListBox_temp.Items.Item(pi).ToString 
    MediaElement1.Source = New Uri(filename) 
Catch ex As Exception
End Try
  

Это значение увеличивается, pi если не выбрано последнее ListBoxItem , и в этом случае оно устанавливается равным нулю.