www.pudn.com > bofangqi.rar > Form1.vb


Public Class Form1 
    Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Integer, ByVal Y1 As Integer, ByVal X2 As Integer, ByVal Y2 As Integer) As Integer 
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Integer, ByVal hrgn As Integer, ByVal bRedraw As Boolean) As Integer 
    Private Declare Function auxSetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByVal dwVolume As Integer) As Integer 
    Private Declare Function waveOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByRef lpdwVolume As Integer) As Integer 
    Private Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByVal dwVolume As Integer) As Integer 
    Dim CurIndex As Integer = 0 
    Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click 
        On Error GoTo handler 
        With OpenFileDialog1 
            '.InitialDirectory = Application.StartupPath 
            MediaPlayer1.Command = "open" 
            MediaPlayer1.Command = "play" 
            TextBox1.Text = " 正在播放:" & .FileName 
            btnPause.Enabled = True 
            btnContinue.Enabled = False 
            btnStop.Enabled = True 
            btnPrev.Enabled = True 
            btnNext.Enabled = True 
            btnContinue.Enabled = True 
            btnPlay.Enabled = False 
            Exit Sub 
        End With 
handler: 
        MsgBox("未选择媒体文件。", MsgBoxStyle.OkOnly, "错误信息") 
    End Sub 
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
        Dim lres As Object 
        Dim hrgn As Object 
 
        'UPGRADE_WARNING: 未能解析对象 hrgn 的默认属性。 单击以获得更多信息:ms-help://MS.MSDNVS/vbcon/html/vbup1037.htm 
        hrgn = CreateEllipticRgn(0, 40, 650, 460) 
        'UPGRADE_WARNING: 未能解析对象 hrgn 的默认属性。 单击以获得更多信息:ms-help://MS.MSDNVS/vbcon/html/vbup1037.htm 
        'UPGRADE_WARNING: 未能解析对象 lres 的默认属性。 单击以获得更多信息:ms-help://MS.MSDNVS/vbcon/html/vbup1037.htm 
        lres = SetWindowRgn(Me.Handle.ToInt32, hrgn, True) 
 
        'MediaPlayer1.Visible = False 
        btnContinue.Enabled = False 
        btnPause.Enabled = False 
        btnStop.Enabled = False 
        btnPrev.Enabled = False 
        btnNext.Enabled = False 
        btnPlay.Enabled = False 
        TextBox1.Text = "本播放器支持各种音乐格式。谢谢使用。" 
        TextBox1.BackColor = System.Drawing.Color.Black 
        TextBox1.ForeColor = System.Drawing.Color.Yellow 
        TrackBar2.Minimum = 0 
        TrackBar2.Maximum = 10240 
 
    End Sub 
 
    Private Sub btnPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPause.Click 
        TextBox1.Focus() 
        MediaPlayer1.Command = "pause" 
        btnPause.Enabled = False 
        btnContinue.Enabled = True 
    End Sub 
 
    Private Sub btnContinue_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnContinue.Click 
        TextBox1.Focus() 
        MediaPlayer1.Command = "play" 
        btnPlay.Enabled = False 
        btnPause.Enabled = True 
        btnContinue.Enabled = False 
    End Sub 
 
 
 
    Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click 
        MediaPlayer1.Command = "stop" 
        btnPlay.Enabled = True 
        btnPause.Enabled = False 
        btnContinue.Enabled = False 
        btnStop.Enabled = False 
    End Sub 
 
    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click 
        End 
    End Sub 
 
    Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick 
        MediaPlayer1.Command = "close" 
        MediaPlayer1.FileName = ListBox1.Text 
        MediaPlayer1.Command = "open" 
        MediaPlayer1.Command = "play" 
        CurIndex = ListBox1.SelectedIndex 
        TrackBar1.Minimum = 0 
        TrackBar1.Maximum = MediaPlayer1.Length 
        Label1.Text = "总时长:" & TimeToStr(MediaPlayer1.Length) 
    End Sub 
 
 
    Private Sub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click 
        If CurIndex > 0 Then 
            CurIndex = CurIndex - 1 
        Else 
            CurIndex = ListBox1.Items.Count - 1 
        End If 
        MediaPlayer1.Command = "close" 
        MediaPlayer1.FileName = ListBox1.Items.Item(CurIndex) 
        MediaPlayer1.Command = "open" 
        MediaPlayer1.Command = "play" 
        ListBox1.SelectedIndex = CurIndex 
        TrackBar1.Minimum = 0 
        TrackBar1.Maximum = MediaPlayer1.Length 
        Label1.Text = "总时长:" & TimeToStr(MediaPlayer1.Length) 
    End Sub 
    Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click 
        If CurIndex < ListBox1.Items.Count - 1 Then 
            CurIndex = CurIndex + 1 
        Else 
            CurIndex = 0 
        End If 
        MediaPlayer1.Command = "close" 
        MediaPlayer1.FileName = ListBox1.Items.Item(CurIndex) 
        MediaPlayer1.Command = "open" 
        MediaPlayer1.Command = "play" 
        ListBox1.SelectedIndex = CurIndex 
        TrackBar1.Minimum = 0 
        TrackBar1.Maximum = MediaPlayer1.Length 
        Label1.Text = "总时长:" & TimeToStr(MediaPlayer1.Length) 
    End Sub 
 
    Private Sub MediaPlayer1_PauseClick(ByVal sender As Object, ByVal e As AxMCI.DmciEvents_PauseClickEvent) Handles MediaPlayer1.PauseClick 
        'Call btnPause_Click(btnPause, New System.EventArgs) 
    End Sub 
 
    Private Sub MediaPlayer1_PlayClick(ByVal sender As Object, ByVal e As AxMCI.DmciEvents_PlayClickEvent) Handles MediaPlayer1.PlayClick 
        Call btnPlay_Click(btnPlay, New System.EventArgs) 
    End Sub 
    Private Sub MediaPlayer1_StatusUpdate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MediaPlayer1.StatusUpdate 
        If MediaPlayer1.Position = MediaPlayer1.Length Then 
            Call btnNext_Click(btnNext, New System.EventArgs) 
        End If 
    End Sub 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click 
        TextBox1.Focus() 
        On Error GoTo handler 
        With OpenFileDialog1 
            '.InitialDirectory = Application.StartupPath 
            .InitialDirectory = "e:\音乐" 
            .Filter = "Midi Files(*.mid)|*.mid|MP3 Files(*.mp3)|*.mp3|Wave Filse(*.wav)|*.wav|(*.m3u)|*.m3u" 
            .FilterIndex = 2 
            .FileName = "" 
            .Multiselect = True 
            .ShowDialog() 
            MediaPlayer1.FileName = .FileName 
            MediaPlayer1.Command = "open" 
            MediaPlayer1.Command = "play" 
            TextBox1.Text = " 正在播放:" & .FileName 
            btnPlay.Enabled = False 
            btnPause.Enabled = True 
            btnContinue.Enabled = False 
            btnStop.Enabled = True 
            btnPrev.Enabled = True 
            btnNext.Enabled = True 
            Dim FileNam As String 
            For Each FileNam In .FileNames 
                ListBox1.Items.Add(FileNam) 
            Next FileNam 
            ListBox1.SelectedIndex = 0 
        End With 
        TrackBar1.Minimum = 0 
        TrackBar1.Maximum = MediaPlayer1.Length 
        Label1.Text = "总时长:" & TimeToStr(MediaPlayer1.Length) 
        Exit Sub 
handler: 
        MsgBox("未选择媒体文件。", MsgBoxStyle.OkOnly, "错误信息") 
    End Sub 
 
    Private Sub MediaPlayer1_BackClick(ByVal sender As System.Object, ByVal e As AxMCI.DmciEvents_BackClickEvent) Handles MediaPlayer1.BackClick 
        'Call btnPlay_Click(btnPlay, New System.EventArgs) 
    End Sub 
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
        TrackBar1.Value = MediaPlayer1.Position 
        Label2.Text = "播放到:" & TimeToStr(MediaPlayer1.Position) 
        Label3.Text = "剩余时间:" & TimeToStr(MediaPlayer1.Length - MediaPlayer1.Position) 
    End Sub 
 
    Private Sub TrackBar1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TrackBar1.MouseDown 
        If e.Button = Windows.Forms.MouseButtons.Left Then 
            Timer1.Enabled = False 
        End If 
    End Sub 
 
    Private Sub TrackBar1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TrackBar1.MouseUp 
        If e.Button = Windows.Forms.MouseButtons.Left Then 
            MediaPlayer1.Command = "close" 
            MediaPlayer1.Command = "open" 
            MediaPlayer1.From = TrackBar1.Value 
            MediaPlayer1.Command = "play" 
            Timer1.Enabled = True 
        End If 
    End Sub 
    Private Function TimeToStr(ByVal intTime As Integer) As String '格式化时间 
        Dim Ret As String 
        Dim Sec As Integer 
        Dim H As Integer, M As Integer, S As Integer 
        Sec = Math.Round(intTime / 1000) 
        H = Sec \ 3600 
        If H < 10 Then 
            Ret = "0" & H & ":" 
        Else 
            Ret = H & ":" 
        End If 
        M = (Sec Mod 3600) \ 60 
        If M < 10 Then 
            Ret = Ret & "0" & M & ":" 
        Else 
            Ret = Ret & M & ":" 
        End If 
        S = (Sec Mod 60) 
        If S < 10 Then 
            Ret = Ret & "0" & S 
        Else 
            Ret = Ret & S 
        End If 
        Return Ret 
    End Function 
 
    Private Sub CMAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMAdd.Click 
        Call Button1_Click(btnOpen, New System.EventArgs) 
    End Sub 
 
    Private Sub CMDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDel.Click 
        Dim SelectIndex As ListBox.SelectedIndexCollection       '首先定义一个全局变量    
        Dim Array_Index() As Integer 
 
        '取出选中的每一行的行号    
 
        SelectIndex = ListBox1.SelectedIndices 
        ReDim Array_Index(SelectIndex.Count - 1) 
        Dim i As Integer 
 
        For i = SelectIndex.Count - 1 To 0 Step -1 
            Array_Index(i) = SelectIndex.Item(i) 
            ListBox1.Items.RemoveAt(Array_Index(i)) 
        Next 
 
    End Sub 
 
    Private Sub CMSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMSave.Click 
        Dim FileNum As Integer 
        Dim FileName As String 
        Dim i As Integer 
        FileNum = FreeFile() 
        SaveFileDialog1.ShowDialog() 
        FileName = SaveFileDialog1.FileName 
        FileOpen(FileNum, FileName, OpenMode.Output) 
        For i = 0 To ListBox1.Items.Count - 1 
            PrintLine(FileNum, ListBox1.Items.Item(i)) 
        Next 
        FileClose(FileNum) 
    End Sub 
 
    Private Sub CMOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMOpen.Click 
        Dim FileNum As Integer 
        Dim FileName As String 
        Dim ListText As String 
        ListBox1.Items.Clear() 
        FileNum = FreeFile() 
        OpenFileDialog2.ShowDialog() 
        FileName = OpenFileDialog2.FileName 
        FileOpen(FileNum, FileName, OpenMode.Input) 
        Do While Not EOF(FileNum) 
            ListText = LineInput(FileNum) 
            ListBox1.Items.Add(ListText) 
        Loop 
        FileClose(FileNum) 
    End Sub 
 
    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) 
 
    End Sub 
 
    Private Sub TrackBar2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar2.Scroll 
        Dim a As Object 
        Dim uDeviceID As Object 
        Dim b As Integer 
        a = auxSetVolume(0, 15) 
        a = waveOutSetVolume(uDeviceID, -11100) 
        a = waveOutGetVolume(uDeviceID, b) 
        TextBox1.Text = b 
 
    End Sub 
End Class