Как складывать mp3 файлы в список - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь создать музыкальный проигрыватель, используя AxWindowsMediaPlayer, но у меня небольшая проблема с этим кодом импорта. (импортированные элементы идут в список @ listbox1)

Public Class Form1
Dim song As String()
Dim directory As String()
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Try
        If (OpenFileDialog1.ShowDialog = DialogResult.OK) Then
            song = OpenFileDialog1.SafeFileNames
            directory = OpenFileDialog1.FileNames
            For items As Integer = 0 To song.Count - 1
                ListBox1.Items.Add(song(items))
            Next
        End If
    Catch ex As Exception
    End Try
End Sub

Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
Try
    AxWindowsMediaPlayer1.URL = directory(ListBox1.SelectedIndex)
    AxWindowsMediaPlayer1.Ctlcontrols.play()
End Sub
End Class
Catch ex As Exception
    End Try

Но при попытке повторно импортировать новые песни (после первого импорта) и пытаться воспроизвести их, вновь импортированные песни перезаписывают предыдущие (например, oldimportedsong1 перезаписывается newimportedsong1, oldimportedsong2 перезаписывается newimportedsong2)

Пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 03 мая 2018

Это упростит ваш код, если вы используете List (Of T). В противном случае вам придется повторно сохранить ваши массивы. В вашем коде происходит перезапись массивов каждый раз, когда вы нажимаете кнопку.

Private song As New List(Of String)
Private directory As New List(Of String)

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Try
            If OpenFileDialog1.ShowDialog = DialogResult.OK Then
                song.AddRange(OpenFileDialog1.SafeFileNames)
                directory.AddRange(OpenFileDialog1.FileNames)
                ListBox1.DataSource = Nothing
                ListBox1.DataSource = song
            End If
        Catch ex As Exception
            'empty catch boxes are the devil's workshop
            MessageBox.Show(ex.Message)
        End Try
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim i As Integer = ListBox1.SelectedIndex
        Dim path As String = directory(i)
End Sub
...