用MMCONTROL控件做的多媒体播放器问题

zhidekaolv 2008-02-14 04:57:49
Option Explicit
Private Sub Form_Load()
mmc1.AutoEnable = False
mmc1.PlayEnabled = True
mmc1.PauseEnabled = True
mmc1.BackEnabled = True
mmc1.StepEnabled = True
mmc1.StopEnabled = True
mmc1.PrevEnabled = True
Label1.Caption = ""
Label2.Caption = ""
mmc1.hWndDisplay = pic1.hWnd
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
mmc1.Command = "stop"
mmc1.Command = "close"
End Sub

Private Sub menuexit_Click()
End
End Sub

Private Sub menuopen_Click()
cdg1.FileName = ""
cdg1.Filter = "( *.wave)| *.wav|(*.avi)| *.avi|(vcd *.dat) *.dat"
cdg1.FilterIndex = 1
cdg1.ShowOpen
mmc1.Command = "close"

If Len(cdg1.FileName) = 0 Then
Exit Sub
Else
If cdg1.FilterIndex = 1 Then
mmc1.DeviceType = "waveaudio"
mmc1.FileName = cdg1.FileName
mmc1.Command = "open"
mmc1.Command = "play"
sld1.Min = 0
sld1.Max = mmc1.Length
ElseIf cdg1.FilterIndex = 2 Then
mmc1.DeviceType = "avivideo"
mmc1.FileName = cdg1.FileName
mmc1.Command = "open"
mmc1.Command = "play"
sld1.Min = 0
sld1.Max = mmc1.Length
ElseIf cdg1.FilterIndex = 3 Then
mmc1.DeviceType = "mpegvideo"
mmc1.FileName = cdg1.FileName
mmc1.Command = "open"
mmc1.Command = "play"
sld1.Min = 0
sld1.Max = mmc1.Length
End If
End If
End Sub

Private Sub mmc1_BackClick(Cancel As Integer)
mmc1.Command = "back"
mmc1.Frames = 3
End Sub

Private Sub mmc1_PauseClick(Cancel As Integer)
mmc1.Command = "stop"
End Sub

Private Sub mmc1_PlayClick(Cancel As Integer)
mmc1.Command = "sound"
End Sub

Private Sub mmc1_PlayCompleted(Errorcode As Long)
mmc1.Command = "prev"
mmc1.Command = "sound"
End Sub

Private Sub mmc1_PrevClick(Cancel As Integer)
mmc1.Command = "prev"
End Sub

Private Sub mmc1_StatusUpdate()
With mmc1

If .DeviceID <> 0 Then '判断是否在起始点
If sld1.Value <> .Position Then sld1.Value = .Position '如果滑杆位置跟MMC控件不符合则将MMC位置的
End If '数值赋于Slider控件
End With
End Sub

Private Sub mmc1_StepClick(Cancel As Integer)
mmc1.Command = "step"
mmc1.Frames = 3
End Sub

Private Sub mmc1_StopClick(Cancel As Integer)
mmc1.Command = "stop"
mmc1.Command = "prev"
End Sub

Private Sub sld1_Scroll()
mmc1.To = sld1.Value
mmc1.Command = "seek"
mmc1.Command = "play"
End Sub

Private Sub Timer1_Timer()
Label1.Caption = Date
Label2.Caption = Time
End Sub

我添加的控件是 MMC控件 COMMONDIALOG控件 PICTURE控件
用他播放WAV文件的时候一碰窗口就死机 不能播放AVI格式的电影

请帮我整理整理 或指教指教 我也知道很麻烦 先谢谢了。
...全文
202 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZOU_SEAFARER 2008-02-16
  • 打赏
  • 举报
回复
不晓得哈,从没有作过
东方之珠 2008-02-16
  • 打赏
  • 举报
回复
'参考一下下面这个代码
Private Sub Check1_Click()
If Check1.Value = 1 Then
MMControl1.Command = "PLAY"
End If
End Sub

Private Sub MMControl1_Done(NotifyCode As Integer)
MMControl1.UpdateInterval = 100

End Sub

Private Sub MMControl1_StatusUpdate()
On Error GoTo ERROPEN
MMControl1.TimeFormat = 0
Slider1.Max = MMControl1.Length / 1000
If MMControl1.Position <> MMControl1.Length Then
Slider1.Value = MMControl1.Position / 1000
Else
MMControl1.Command = "Prev"
Slider1.Value = 0
End If
StatusBar1.Panels(2) = TSTRING(MMControl1.Length - MMControl1.Position)
StatusBar1.Panels(4) = TSTRING(MMControl1.Length)
Label1.Caption = "00:00"
Label1.Caption = TSTRING(MMControl1.LENGHT / 2)
Label3.Caption = TSTRING(MMControl1.LENGHT)
Select Case MMControl1.Mode
Case 524
StatusBar1.Panels(5) = "末打开设备....."
StatusBar1.Panels(5) = "停止状态......."
Case 526
StatusBar1.Panels(5) = "正在播放...." & CommonDialog1.FileTitle
Case 527
StatusBar1.Panels(5) = "正在录音...."
Case 528
StatusBar1.Panels(5) = "正在搜索....."
Case 529
StatusBar1.Panels(5) = "暂停播放......"
Case 530
StatusBar1.Panels(5) = "设备就绪......."
End Select
ERROPEN:

End Sub

Private Sub mnUCLOSE_Click()
MMControl1.Command = "CLOSE"
mnUCLOSE.Enabled = False
End Sub

Private Sub MNUEXIT_Click()
MMControl1.Command = "CLOSE"
End
End Sub

Private Sub MNUOPEN_Click()
CommonDialog1.Filter = "MIDI间乐序器*.mid|*.mid|声音*.WAV|*.WAV|WINDOWS视频*.AVI|*.AVI"
CommonDialog1.ShowOpen
MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.DeviceType = ""
MMControl1.FileName = CommonDialog1.FileName
MMControl1.Command = "OPEN"
mnUCLOSE.Enabled = True
Slider1.Visible = True
End Sub
Private Function TSTRING(SM As Long) As String
S = (SM / 1000 / 60) Mod 60
M = (SM / 1000) Mod 60
TSTRING = Format(S, "00") & ":" & Format(M, "00")
End Function
junki 2008-02-15
  • 打赏
  • 举报
回复
使用使用mediaplayer,activemovie来做,功能更加强大

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧