0

vb.net の連続ループで 1 つまたは複数のビデオを再生する directx メディア プレーヤーを取得するにはどうすればよいですか? 試してみるとエラーが表示されます

エラー:

タイプ 'System.ArgumentOutOfRangeException' の未処理の例外が mscorlib.dll で発生しました

追加情報: インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。

これまでの私のコードは次のとおりです。

Imports Microsoft.DirectX
Imports Microsoft.DirectX.AudioVideoPlayback
Imports System.Text.RegularExpressions
Imports System.Net
Imports System.IO

Public Class Form1
    Dim PlayorPause As Integer = 0
    Dim MovieN As Integer = 0
    Dim NowPlaying As List(Of String) = New List(Of String)
    Friend WithEvents videoFile As Video
    Sub Pause()
        If PlayorPause = 0 Then
            videoFile.Play()
            PlayorPause = 1
        Else
            videoFile.Pause()
            PlayorPause = 0
        End If
    End Sub
    Sub Nextvid()
        videoFile.Dispose()
        Dim WindowSize As Size = Panel1.Size
        If MovieN > NowPlaying.Count - 1 Then
            MovieN = 0
            Nextvid()
        Else
            videoFile = New Video(NowPlaying(MovieN))
            videoFile.Owner = Panel1
            Panel1.Size = WindowSize
            videoFile.Play()
        End If
    End Sub
    Private Sub Video_End(ByVal sender As Object, ByVal e As EventArgs) Handles videoFile.Ending

        Dim WindowSize As Size = Panel1.Size
        If MovieN > NowPlaying.Count Then
            MovieN = 0
        Else
            Dim CurrenN As Integer = MovieN - 1
            MovieN = MovieN + 1
            videoFile = New Video(NowPlaying(MovieN))

        End If
        videoFile.Owner = Panel1
        Panel1.Size = WindowSize
        videoFile.Play()
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        NowPlaying.Add(" C:\Users\Adminx\Downloads\ShortestVid.avi")
        Dim WindowSize As Size = Panel1.Size
        videoFile = New Video(NowPlaying(0))
        videoFile.Owner = Panel1
        Panel1.Size = WindowSize
        Me.KeyPreview = True
        Me.MinimumSize = New Size(319, 444)
        Me.Size = Me.MinimumSize
        Me.DoubleBuffered = True
    End Sub
    Sub NextPress()
        MovieN = MovieN + 1
        Nextvid()
    End Sub

    Sub PrePress()
        MovieN = MovieN - 1
        Nextvid()
    End Sub

    Sub Watchbtn()
        Me.MinimumSize = New Size(660, 444)
        Panel1.Visible = True
        Panel1.Focus()
    End Sub
End Class
4

1 に答える 1

0

Video_End で、置き換えます

If MovieN > NowPlaying.Count Then

If MovieN > NowPlaying.Count - 1 Then
于 2012-12-27T04:21:22.960 に答える