📄 当前曲目的播放时间.frm
字号:
VERSION 5.00
Begin VB.Form Form5
Caption = "Form5"
ClientHeight = 1140
ClientLeft = 60
ClientTop = 345
ClientWidth = 5175
LinkTopic = "Form3"
ScaleHeight = 1140
ScaleWidth = 5175
StartUpPosition = 3 '窗口缺省
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 1000
Left = 4650
Top = 150
End
Begin VB.TextBox Text2
Alignment = 1 'Right Justify
Height = 305
Left = 3390
TabIndex = 6
Text = "Text2"
Top = 120
Width = 1215
End
Begin VB.TextBox Text1
Alignment = 1 'Right Justify
Height = 305
Left = 1170
Locked = -1 'True
TabIndex = 4
Text = "Text1"
Top = 120
Width = 915
End
Begin VB.CommandButton Command4
Caption = "停止播放"
Height = 315
Left = 3720
TabIndex = 3
Top = 690
Width = 1185
End
Begin VB.CommandButton Command3
Caption = "下一曲目>>"
Height = 315
Left = 2520
TabIndex = 2
Top = 690
Width = 1185
End
Begin VB.CommandButton Command2
Caption = "<<上一曲目"
Height = 315
Left = 1320
TabIndex = 1
Top = 690
Width = 1185
End
Begin VB.CommandButton Command1
Caption = "播 放"
Height = 315
Left = 120
TabIndex = 0
Top = 690
Width = 1185
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "播放时间:"
Height = 180
Left = 2400
TabIndex = 7
Top = 180
Width = 900
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "当前曲目:"
Height = 180
Left = 210
TabIndex = 5
Top = 180
Width = 900
End
End
Attribute VB_Name = "Form5"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
' API函数声明
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim S As String, Tracks As Integer, CurTrack As Integer
Dim T1 As Date, T2 As Date
Dim Total As Integer, D As String
Dim Tm As Integer, Ts As Integer, Tsd As String
Private Sub Form_Load()
' 打开 CD 设备
mciSendString "Open cdaudio alias CDRom", vbNullString, 0, 0
S = String(256, Chr(0))
mciSendString "Status CDRom number of tracks", S, Len(S), 0
Tracks = Val(S)
' 将播放曲目定位在第一首乐曲
CurTrack = 1
mciSendString "Status CDRom position track " & CurTrack, S, Len(S), 0
Text1 = CurTrack
Text2 = "0:00"
End Sub
Private Sub Command1_Click()
' 播放音乐
Text2 = "0:00"
mciSendString "Status CDRom Length track " & CurTrack, S, Len(S), 0
Total = Val(Mid(S, 1, 2)) * 60 + Val(Mid(S, 4, 2))
mciSendString "Play CDRom", vbNullString, 0, 0
T1 = Time
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
' 播放上一曲目
Text2 = "0:00"
If CurTrack > 1 Then
CurTrack = CurTrack - 1
Else
CurTrack = Tracks
End If
Text1 = CurTrack
mciSendString "Status CDRom Length track " & CurTrack, S, Len(S), 0
Total = Val(Mid(S, 1, 2)) * 60 + Val(Mid(S, 4, 2))
mciSendString "Status CDRom position track " & CurTrack, S, Len(S), 0
mciSendString "Play CDRom from " & Left(S, 8), vbNullString, 0, 0
T1 = Time
Timer1.Enabled = True
End Sub
Private Sub Command3_Click()
' 播放下一曲目
Text2 = "0:00"
If CurTrack < Tracks Then
CurTrack = CurTrack + 1
Else
CurTrack = 1
End If
Text1 = CurTrack
mciSendString "Status CDRom Length track " & CurTrack, S, Len(S), 0
Total = Val(Mid(S, 1, 2)) * 60 + Val(Mid(S, 4, 2))
mciSendString "Status CDRom position track " & CurTrack, S, Len(S), 0
mciSendString "Play CDRom from " & Left(S, 8), vbNullString, 0, 0
T1 = Time
Timer1.Enabled = True
End Sub
Private Sub Command4_Click()
' 停止播放
mciSendString "Stop CDRom", vbNullString, 0, 0
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
' 定时过程,得到乐曲当前实际播放时间
T2 = Time
D = DateDiff("s", T1, T2)
If D = Total Then
Timer1.Enabled = False
mciSendString "Stop CDRom", vbNullString, 0, 0
End If
' 秒化为"分"、"秒"
If D > 59 Then
Tm = D \ 60
Ts = D - 60 * Tm
If Ts < 10 Then
Tsd = "0" + CStr(Ts)
Else
Tsd = CStr(Ts)
End If
Else
Tm = "00"
Ts = D
If Ts < 10 Then
Tsd = "0" + CStr(Ts)
Else
Tsd = CStr(Ts)
End If
End If
Text2 = CStr(Tm) + ":" + Tsd
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -