现在的要求是:
能够播放(显示)Gif,JPG,SWF,AVI,MPG,Dat,text,等一些可视文件,
该控件把一些东西都封装成方法(Play ,stop...)
整个控件就只要把东西给显示出来就行了问题:
如果就用API是否能够搞定呢,还是得使用其他控件?
能够播放(显示)Gif,JPG,SWF,AVI,MPG,Dat,text,等一些可视文件,
该控件把一些东西都封装成方法(Play ,stop...)
整个控件就只要把东西给显示出来就行了问题:
如果就用API是否能够搞定呢,还是得使用其他控件?
用MediaPlayer控件做一个完全属于自己的MP3播放器对VB初学者来说,做MP3播放器最为难的是控件了:千辛万苦找来了一个控件,用起来却一点也不痛快——不是有时间限制,就是功能不齐全,除非你交钱!其实,我们不必舍近求远,WIN98就有一个宝贝:MediaPlayer!这个控件支持多种音乐格式,而且绝对免费,用它做出的MP3播放器最合适不过了! 方法如下: 新建标准EXE工程,窗体就用默认名称好了,Caption为“土人MP3”或别的,将其BorderStyle属性设为1,MinButton设为True;添加一个MediaPlayer控件、一个公共对话框和一个Text控件;接下来在窗体上画五个按钮,分别命名为:cmdPlay,cmdPause,cmdContinue,cmdNext,cmdStop,Caption依次为播放、暂停、继续、下一曲、停止。好,下面就是编写代码了: '初始化程序
Private Sub Form_Load()
MediaPlayer1.Visible = False
cmdPlay.BackColor = vbRed
cmdPause.BackColor = vbRed
cmdContinue.BackColor = vbRed
cmdStop.BackColor = vbRed
cmdNext.BackColor = vbRed
cmdContinue.Enabled = False
cmdPause.Enabled = False
cmdStop.Enabled = False
Text1.Text = "本播放器支持各种音乐格式。谢谢使用。 土人。"
Text1.BackColor = vbBlack
Text1.ForeColor = vbYellow
End Sub '播放
Private Sub cmdPlay_Click()
Text1.SetFocus
On Error GoTo handler
With CommonDialog1
'.Flags = cdlOFNAllowMultiselect
.InitDir = App.Path
.Filter = "Midi Files(*.mid)|*.mid|MP3 Files(*.mp3)|*.mp3|Wave Filse(*.wav)|*.wav|(*.m3u)|*.m3u"
.FileName = ""
.ShowOpen
End With
MediaPlayer1.FileName = CommonDialog1.FileName
MediaPlayer1.Play
Text1.Text = " 现在正在播放:" & CommonDialog1.FileName
cmdPlay.Enabled = False
cmdPause.Enabled = True
cmdContinue.Enabled = False
cmdStop.Enabled = True
Exit Sub
handler:
MsgBox "未选择媒体文件。", vbOKOnly, "错误信息"
End Sub '暂停播放
Private Sub cmdPause_Click()
Text1.SetFocus
MediaPlayer1.Pause
cmdPause.Enabled = False
cmdContinue.Enabled = True
End Sub '继续播放
Private Sub cmdContinue_Click()
Text1.SetFocus
MediaPlayer1.Play
cmdPlay.Enabled = False
cmdPause.Enabled = True
cmdContinue.Enabled = False
End Sub '播放下一曲
Private Sub cmdNext_Click()
On Error GoTo NextErr '播放非m3u文件时只能播放单曲,故设置出错处理
MediaPlayer1.Next
Exit Sub
NextErr:
MsgBox "现在正在播放单曲,没有一下曲。", vbOKOnly, "出错信息"
End Sub '停止播放
Private Sub cmdStop_Click()
MediaPlayer1.Stop
cmdPlay.Enabled = True
cmdPause.Enabled = False
cmdContinue.Enabled = False
cmdStop.Enabled = False
End Sub 怎么样?代码不算多,一个自己的MP3播放器就做成了!这个MP3播放器只占用具2%的资源,播放质量并不见得比Winamp差,是不是很诱人? 说明:
1.*.m3u文件应该是大家所认识的,就是Winamp之类的播放器的播放文件列表,我们完全可以用记事本编辑它(打开一个此类的文件看看,没什么神秘的)。
2.以上程序在VB6.0,Win98第二版下调试通过。
笔者在初步研究了Windows的SYSTEM.INI后发现,通过VB的多媒体控件MCI.VBX可以打开MPEG压缩文件(如VCD2.0版的.DAT文件)。
首先你的Windows系统中SYSTEM.INI文件关于[MCI]中需有MPEGVideo项(一般Windows95和Windows98中都已有此项,通过安装XingPlay或CCDVP95等软件也可增加此项)。
其次在VB中建立一个新窗口,将MCI.VBX加入ToolBox中,将MCI控件拖放至窗体Form上,调整其大小,将九个按钮(从左至右为:Prev、Next、Play、Pause、Back、Step、Stop、Record和Eject)中Record按钮Visible属性设为False,其余按钮的Visible属性和Enabled属性设置为True,以上按钮的设置可通过MMControl的属性栏内“自定义”项来设置。
假设光驱为E:,VCD碟片文件为E:\MPEGAV\MUSIC01.DAT。
源代码如下:
Private Sub Form_ Load()
MMControl.DeviceType=″MPEGVideo″
MMControl.FileName=″E:\MPEGAV\MUSIC01.DAT″
MMControl.Command=″OPEN″
MMControl.Command=″PLAY″
End Sub
Sub Form_Unload(Cancel As Integer)
MMControl.Command=″close″
End Sub
笔者通过实践发现Step和Back按钮功能不明显,所以对以上两个按钮进行了一些改进。
Sub MMControl_ StepClick(Cancel As Integer)
j=MMControl.Position+100 ′数值100为前进量,可适当调整
If j>MMControl.Length Then
MMControl.From=MMControl.Length
Else
MMControl.From=j
End If
MMControl.Command=″Play″
End Sub
Sub MMControl_ BackClick(Cancel As Integer)
I=MMControl.Position-100 ′数值100为后退量,可适当调整
If I<0 Then
MMControl.From=0
Else
MMControl.From=I
End If
MMControl.Command=″Play″
End Sub
MCI控件还有很多属性,如画面播放位置hWndDisplay属性等,读者可参阅相关资料自行摸索,这里不再介绍。读者还可以通过建立通用对话框来打开文件,以解决VCD文件名不统一或多文件的问题。
调整好窗体Form的标题、图标、颜色等,然后编译成EXE文件,你就可以在Windows下拥有自己的VCD播放器了。
另外,因电脑性能差异及VCD解码质量的不同,播放画面质量和音质将有所差异。