Циркуляция воспроизведения аудио с MediaElement в WPF - PullRequest
0 голосов
/ 09 октября 2011

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

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

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

и используйте «Next» для перехода к следующему аудио / видео.

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


Теперь проблема наступает,

Предположим, в списке есть четыре аудио (.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 Ответ

0 голосов
/ 05 февраля 2012

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

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, и в этом случае он устанавливает его на ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...