音乐播放器vb.net [英] Music player vb.net

查看:99
本文介绍了音乐播放器vb.net的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好我们正在为visual studio 2010做音乐播放器项目,我写下面的代码但仍然有问题,它说索引超出了范围。必须是非负数且小于集合的大小。

hello guys i am doing music player project in visual studio 2010, i write the following code but still have a problem, it says Index was out of range. Must be non-negative and less than the size of the collection.
at line

Player.URL = files(0)



伙计们能帮到我吗?非常感谢




guys can you help me? thanks alot

 Public Class Form1
#Region "Color Settings"
    Dim CurrentTrackColor As System.Drawing.Color = Color.Red
    Dim PausedTrackColor As System.Drawing.Color = Color.LightYellow
#End Region
    Dim WithEvents Player As New WMPLib.WindowsMediaPlayer
    Dim files As Collections.ObjectModel.ReadOnlyCollection(Of String)
    Dim titles As New List(Of String)
    Dim CurrentPlaying As Integer = 0
    Dim PreviouslyPlaying As Integer = 0

    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        ' Dispose of player
        Player = Nothing
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TrackCol.Width = TrackList.Width - 20
        But_Pause.Enabled = False
        But_Stop.Enabled = False
        files = FileIO.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.MyMusic, FileIO.SearchOption.SearchAllSubDirectories, "*.mp3")
        For Each a As String In files
            Me.TrackList.Items.Add(FileIO.FileSystem.GetName(a))
        Next
        Volume.Value = Player.settings.volume
        Me.Txt_TrackName.Text = Player.URL
        Player.settings.autoStart = False
        Player.URL = files(0)
        Player.enableContextMenu = False
        With Me.Timer1
            .Interval = 500
            .Start()
            .Enabled = True
        End With
    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        ' Form is closing, so shutdown player
        Player.close()
    End Sub

    Private Sub ClickedOnPlayButton(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Play.Click
        GUIMode("Play")
        updatePlayer()
        Player.controls.play()
    End Sub

    Private Sub ClickedOnStopNutton(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Stop.Click
        Player.controls.stop()
        GUIMode("Stopped")
    End Sub

    Private Sub ClickedOnPauseButton(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Pause.Click
        If Player.playState = WMPLib.WMPPlayState.wmppsPaused Then
            GUIMode("Play")
        Else
            GUIMode("Paused")
        End If
    End Sub

    Private Sub GUIMode(ByRef Guimode As String)
        Select Case Guimode
            Case "Play"
                ' Put GUI in playing mode guise
                Player.controls.play()
                But_Pause.BackColor = System.Drawing.SystemColors.Control
                But_Pause.Enabled = True
                But_Stop.Enabled = True
                But_Play.Enabled = True
            Case "Paused"
                ' put gui in paused mode guise
                But_Pause.Enabled = True
                But_Stop.Enabled = False
                But_Play.Enabled = False
                But_Pause.BackColor = PausedTrackColor
                Player.controls.pause()
            Case "Stopped"
                But_Pause.Enabled = False
                But_Stop.Enabled = False

        End Select
    End Sub

    Private Sub ScrollingVolume(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Volume.Scroll
        ' Change the player's volume
        Player.settings.volume = Volume.Value
    End Sub

    Private Sub Player_MediaError(ByVal pMediaObject As Object) Handles Player.MediaError
        MessageBox.Show("Unrecoverable Problem. Shutting Down", "MyMusic Player")
        Me.Close()
    End Sub

    Private Sub Player_PlayStateChange(ByVal NewState As Integer) Handles Player.PlayStateChange
        Static Dim PlayAllowed As Boolean = True
        Select Case CType(NewState, WMPLib.WMPPlayState)
            Case WMPLib.WMPPlayState.wmppsReady
                If PlayAllowed Then
                    Player.controls.play()
                End If
            Case WMPLib.WMPPlayState.wmppsMediaEnded
                ' Reach end of track move onto next, looping around
                PreviouslyPlaying = CurrentPlaying
                CurrentPlaying = (CurrentPlaying + 1) Mod files.Count
                ' Start protection (without it next wouldn't play
                PlayAllowed = False
                ' Play track
                Player.URL = files(CurrentPlaying)
                Player.controls.play()
                ' End Protection
                PlayAllowed = True
                updatePlayer()
        End Select

    End Sub

    Private Sub updatePlayer()
        ' Display track name
        Txt_TrackName.Text = Player.currentMedia.name
        ' Update TrackPostion
        With TrackPosition
            .Minimum = 0
            .Maximum = CInt(Player.currentMedia.duration)
            .Value = CInt(Player.controls.currentPosition())
        End With
        ' Display Current Time Position and Duration
        Txt_Progress.Text = Player.controls.currentPositionString & vbTab & Player.currentMedia.durationString
        ' Set Volume slide to match current volume
        Volume.Value = Player.settings.volume
        ' Is the CurrentPlaying Track No. is different to the Previous Track number.
        If CurrentPlaying <> PreviouslyPlaying Then
            ' Yes, 
            ' Set the forecolor of the corrisponding track, assiociated with the previous playing track, with the control color
            TrackList.Items(PreviouslyPlaying).ForeColor = System.Drawing.SystemColors.ControlText
        End If
        ' Set the forecolor of the corrisponding track, assiociated with the currently playing track, with the current track color
        TrackList.Items(CurrentPlaying).ForeColor = CurrentTrackColor
    End Sub     
   End Class

推荐答案

这篇关于音乐播放器vb.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆