VB.NET中的VLC播放器赢得';我似乎没有检测到播放结束,我做错什么了吗?

VB.NET中的VLC播放器赢得';我似乎没有检测到播放结束,我做错什么了吗?,vb.net,visual-studio-2010,media-player,vlc,libvlc,Vb.net,Visual Studio 2010,Media Player,Vlc,Libvlc,VB.NET中的VLC播放器似乎无法检测到播放结束,我是否做错了什么 我的意图是使用“_mediaplayerdreached”使播放器移动到下一个视频,但一旦视频播放完成,什么都没有发生,它就会停止(如下图所示) 它不会继续下一个视频,而是保持如下状态: 仅供参考:用于测试的剪辑是免费的拖车 代码: 无法在EndReach()事件中播放其他媒体文件。 最好的解决方案是在最后创建另一个线程,该线程将在媒体真正结束后播放新文件。 与MediaPlayer用户控件相同 如果您不知道如何创建新线程,

VB.NET中的VLC播放器似乎无法检测到播放结束,我是否做错了什么

我的意图是使用“_mediaplayerdreached”使播放器移动到下一个视频,但一旦视频播放完成,什么都没有发生,它就会停止(如下图所示)

它不会继续下一个视频,而是保持如下状态:

仅供参考:用于测试的剪辑是免费的拖车

代码:


无法在EndReach()事件中播放其他媒体文件。 最好的解决方案是在最后创建另一个线程,该线程将在媒体真正结束后播放新文件。 与MediaPlayer用户控件相同

如果您不知道如何创建新线程,这是最简单的方法:

thread = new Thread(() => while(VLC IS PLAYING) {}; PlayNewFile;  )); 
thread.Start();
我没有测试它,但这应该可以

线程正在等待VLC停止视频,然后播放下一个视频

编辑:

看看这个:


在这里读到:

我已经想出了如何使用计时器来完成它。谢谢你的帮助

代码:

你必须通过新的帖子来做到这一点。如果你做你的代码,它将重置所有做他们第一次通过后。 好的!
New Seagate

我是否将其放在end Reach事件中?只需将其放在事件中,然后将“旧”命令放在线程中的while之后。您的建议的问题是,当我在视频中按“暂停”时。while循环检测到VLC未播放,然后开始下一个剪辑。但第一个片段实际上还没有结束。还有其他方法吗。试着寻找另一个事件,应该有一个事件在视频结束(而不是停止)后引发,否则就用MediaPlayerI找不到,我会的,但VLC可以播放更多格式,通常流式剪辑更好
thread = new Thread(() => while(VLC IS PLAYING) {}; PlayNewFile;  )); 
thread.Start();
Public Class Form1
    Dim Paused As Boolean = False
    Dim Started As Boolean = False
    Dim PlayedSecond As Boolean = True
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        PlayedSecond = False
        AxVLCPlugin21.playlist.items.clear()
        AxVLCPlugin21.playlist.add("file:///C:/Users/Adminx/Downloads/The_Hobbit_Full_Length_Trailer_2_HD.mp4")
        AxVLCPlugin21.playlist.play()
        Started = True
    End Sub

    Sub playsecond()
            AxVLCPlugin21.playlist.items.clear()
            AxVLCPlugin21.playlist.add("file:///C:/Users/Adminx/Downloads/ShortestVid.avi")
            AxVLCPlugin21.playlist.play()
            PlayedSecond = True
            Started = False
    End Sub

    Private Sub AxVLCPlugin21_pause(sender As Object, e As EventArgs) Handles AxVLCPlugin21.pause
            Paused = True
    End Sub

    Private Sub IsFinished_Tick(sender As Object, e As EventArgs) Handles IsFinished.Tick
        If Not AxVLCPlugin21.playlist.isPlaying And Paused = False And Started = True And PlayedSecond = False Then
            playsecond()
            Started = True
        End If
    End Sub

    Private Sub AxVLCPlugin21_play(sender As Object, e As EventArgs) Handles AxVLCPlugin21.play
        Paused = False
    End Sub
End Class
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        AxVLCPlugin21.playlist.items.clear()
        AxVLCPlugin21.playlist.add("file:///C:/Users/Adminx/Downloads/The_Hobbit_Full_Length_Trailer_2_HD.mp4")
        AxVLCPlugin21.playlist.playItem(0)
    End Sub

    Private Sub AxVLCPlugin21_MediaPlayerEndReached(sender As Object, e As EventArgs) Handles AxVLCPlugin21.MediaPlayerEndReached
        AxVLCPlugin21.playlist.items.clear()
        AxVLCPlugin21.playlist.add("file:///C:/Users/Adminx/Downloads/ShortestVid.avi")
        AxVLCPlugin21.playlist.playItem(0)
    End Sub
End Class