#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
, и в этом случае оно устанавливается равным нулю.