音效档播放程式
------------------------------------------------------------------------
----所需物件:PictureBox(1),Label(6),CommandButton(2),CommonDialog(1),MMControl(1)。
----程式码:
Const INTERVAL = 1000
Dim CurVal As Double
Private Sub CmdEnd_Click()
MMControl1.Command = "stop"
MMControl1.Command = "close"
End
End Sub
Private Sub CmdOpen_Click()
MMControl1.Command = "stop"
MMControl1.Command = "close"
Close #1
On Error GoTo errhandler
CMDlg.Filter = "音效档(*.wav;*.mid) |*.wav;*.mid"
CMDlg.FilterIndex = 1
CMDlg.Action = 1
Open CMDlg.filename For Input As #1
If Right$(CMDlg.filename, 3) = "wav" Then
MMControl1.DeviceType = "waveaudio"
Else
MMControl1.DeviceType = "sequencer"
End If
MMControl1.filename = CMDlg.filename
MMControl1.Command = "open"
CurVal = 0#
MMControl1.UpdateInterval = 0
errhandler:
Exit Sub
End Sub
Private Sub Form_Load()
Label1.Caption = "音效档名:"
Label2.Caption = "总共时间:"
Label3.Caption = "目前位置:"
MMControl1.UpdateInterval = 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
Const MCI_MODE_NOT_OPEN = 524
If Not MMControl1.Mode = MCI_MODE_NOT_OPEN Then
MMControl1.Command = "close"
End If
End Sub
Private Sub MMControl1_PauseClick(Cancel As Integer)
MMControl1.UpdateInterval = 0
CurVal = CurVal
End Sub
Private Sub MMControl1_PlayClick(Cancel As Integer)
MMControl1.UpdateInterval = INTERVAL
End Sub
Private Sub MMControl1_PrevClick(Cancel As Integer)
CurVal = 0#
End Sub
Private Sub MMControl1_StatusUpdate()
MMControl1.TimeFormat = 0
CurVal = CurVal + MMControl1.UpdateInterval + 54
Now_position = CurVal
Now_Min = Int(Now_position / 1000 / 60)
Now_Sec = Int(Now_position / 1000) Mod 60
Total_Min = Int(MMControl1.Length / 1000 / 60)
Total_Sec = Int(MMControl1.Length / 1000) Mod 60
Label4.Caption = MMControl1.filename
Label5.Caption = Format(Total_Min, "00") + ":" + Format(Total_Sec, "00")
Label6.Caption = Format(Now_Min, "00") + ":" + Format(Now_Sec, "00")
If MMControl1.PlayEnabled = False And Now_Min = Total_Min And Now_Sec = Total_Sec Then
CurVal = 0#
MMControl1.UpdateInterval = 0
MMControl1.Command = "prev"
MMControl1.Command = "stop"
End If
End Sub
Private Sub MMControl1_StopClick(Cancel As Integer)
CurVal = 0#
MMControl1.UpdateInterval = 0
MMControl1.Command = "prev"
End Sub