Rem 主題:Mp3/Wav 播放器
Rem 表單佈局:commDialog*1,LabelBox*1,水平捲軸*2,控制按鈕*5,Shape*1
Rem 使用DirectShow物件




程式碼:
Dim startPosition As Long
Dim myFile As String
Dim myAudio As IBasicAudio
Dim myControl As IMediaControl
Dim myPosition As IMediaPosition
Private Sub BtnControl(ByVal n As Integer)
Select Case n
Case 1
Command1.Enabled = True '開啟檔案致能
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
hsVolume.Enabled = False '音量調整除能
hsPanel.Enabled = False '左右聲道除能
Case 2
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = False
hsVolume.Enabled = False
hsPanel.Enabled = False
Command2.SetFocus
Case 3
Command2.Enabled = False
Command3.Enabled = True
Command4.Enabled = True
hsVolume.Enabled = True
hsPanel.Enabled = True
Command3.SetFocus
End Select
End Sub
Private Sub Command1_Click() '開啟媒體檔案
On Local Error GoTo errR
openFile.Filter = "多媒體檔案(*.wav;*.mp3)|*.wav;*.mp3;"
openFile.ShowOpen '開啟檔案對話視窗
myFile = openFile.FileName '取得媒體檔
Set myControl = New FilgraphManager '新增控制介面物件
Call myControl.RenderFile(myFile) '載入媒體檔案
Label1.Caption = myFile '顯示媒體檔案內容
Set myAudio = myControl
myAudio.Volume = hsVolume.Value
myAudio.Balance = hsPanel.Value
Set myPosition = myControl
startPosition = 0
Call Command2_Click '啟動播放
Exit Sub
errR:
err.Clear
End Sub
Private Sub Command2_Click() '播放
myControl.Run
BtnControl 3 '按鈕致能控制
End Sub
Private Sub Command3_Click() '暫停
myControl.Pause
BtnControl 2 '按鈕致能控制
End Sub
Private Sub Command4_Click() '停止
myControl.Stop
myPosition.CurrentPosition = 0
BtnControl 2 '按鈕致能控制
End Sub
Private Sub Command5_Click() '結束
Unload Me
Set Frm_MediaPlay = Nothing '釋放表單緩衝區記憶體
End Sub
Private Sub Form_Load()
BtnControl 1 '按鈕致能控制
End Sub
Private Sub hsPanel_Change()
myAudio.Balance = hsPanel.Value '左右聲道調整
End Sub
Private Sub hsVolume_Change() '音量調整
myAudio.Volume = hsVolume.Value
End Sub
文章定位: