0

VB.NET の VLC Player が再生の終了を検出しないようです。何か問題がありますか?

私の意図は、「_MediaPlayerEndReached」を使用してプレーヤーを次のビデオに移動させることでしたが、代わりに、ビデオの再生が完了すると何も起こらず、停止します(下の画像のように)。

次のビデオに移動するのではなく、このままです。

参考までに: テストに使用したクリップは無料の予告編です。

ここに画像の説明を入力

コード:

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.play()
    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.play()
    End Sub
End Class
4

3 に答える 3

0

タイマーを使ってそれを行う方法を見つけました。助けてくれてありがとう

コード:

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
于 2013-01-25T14:14:48.843 に答える
0

EndReached() イベントで別のメディア ファイルを再生することはできません。最善の解決策は、最後に別のスレッドを作成することです。このスレッドは、メディアの REAL 終了後に新しいファイルを再生します。MediaPlayer ユーザー コントロールと同じです。

新しいスレッドを作成する方法がわからない場合は、これが最も簡単な方法です。

thread = new Thread(() => while(VLC IS PLAYING) {}; PlayNewFile;  )); 
thread.Start();

私はそれをテストしませんでしたが、これでうまくいくはずです。

スレッドは、VLC がビデオを停止してから次のビデオを再生するのを待っています。

編集:

これをチェックしてください:DMediaPlayer - シンプルなVLCフロントエンド

ここで読んでください:.Net_Interface_to_VLC

于 2013-01-25T13:05:15.143 に答える
0
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

新しい投稿を通じて行う必要があります。コードを実行すると、最初に投稿を通過するすべてがリセットされます。大丈夫です!新しいシーゲイト

于 2013-12-26T03:23:41.580 に答える