我正在开发一个带WPF的视频播放器。(在VB中)
我已经创建了一个MediaElement,ListBox,“Next”按钮,
然后开始阅读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
谁能帮助我......
答案 0 :(得分:0)
我没有测试过,但请尝试以下方法。
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
,在这种情况下,它会将其设置为零。