三、ActiveMovie控件方法 ActiveMovie是ActiveX套件中的一个控件,它可以用来播放媒体文件,它支持绝大部分目前通用的媒体格式,它可以播放Wave、Midi、Avi、MPEG、QuickTime Movie等 格式文件。对它的操作相当简单,只需提供要播放的文件名就可以用Run、Pause、Stop方法来播放、暂停和停止该媒体文件了。使用前通过"项目\部件"菜单选择"Microsoft ActiveMovie Control",此时工具箱就会出现ActiveMovie控件,将此控件安放在应用程序的窗体中,然后通过属性窗口或程序代码指定一个多媒体文件, 比如:
Private Sub Command1_Click() ActiveMovie1.filename = "d:\sv.mpg" ActiveMovie1.Run End Sub |
运行程序之后即可通过其控制条进行播放控制。
四、MediaPlayer控件方法 Visual Basic中还有一个宝贝:MediaPlayer,这个控件支持多种音乐格式,如MP3、MIDI、WAV等,可以通过Run、Pause、Stop方法来播放、暂停和停止该媒体文件。使用前通过"项目\部件"菜单选择"Windows Media player",此时工具箱就会出现MediaPlayer控件,将此控件安放在应用程序的窗体中,然后通过属性窗口或程序代码指定一个多媒体文件,就可以通过代码对其进行播放控制了。下面的代码实现了MP3文件的播放:
Private Sub Form_Load() MediaPlayer1.Visible = False End Sub Private Sub cmdPlay_Click() On Error GoTo handler With CommonDialog1 .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 Exit Sub handler: MsgBox "未选择媒体文件。", vbOKOnly, "错误信息" End Sub |
五、API函数控制方法 在实现多媒体文件的高效播放,必须依靠WINDOWS的API 函数,操作多媒体文件常用的API函数如下:
1、mciExecute()函数,这是一个最简单的函数,只有一个参数即MCI指令字符串, 当出现错误时将自动弹出对话框; 下面的代码对sound.wave文件分别进行打开、播放、停止、关闭等控制:
I=mciExecute("open "d:\sound.wav" alias sound") I=mciExecute("play sound") I=mciExecute("stop sound") I=mciExecute("close sound") |
2、mciSendString()函数,它的功能与上面的函数相同, 但它可以传送相应的信息给应用程序, 使用时需要四个参数, 第一个是MCI命令字符串, 第二个是缓冲区,第三个是缓冲区长度, 第四个在VB中可恒置为0; 使用此函数能播放哪些媒体文件呢,可以打开win.ini文件看看便知道,找到[mci extensions]部分,这里记录了你的计算机所能使用的所有媒体文件名,如:mid=Sequencer,等号左边的表示媒体文件的扩展名,等号右边的表示打开此媒体文件的设备名。
使用该函数还要知道如何使用命令字符串来控制设备.下面列出的命令集是各种设备同时都具有的也是关键的命令集:
1)Open device_name [alias alias_name]:Open命令用来打开device_name设备并取别名为alias_name。device_name为媒体文件名或设备名,alias_name是为device_name取的别名。如:Open C:\windows\kl.wav alias WAV意思是打开:c:\windows\kl.wav这个文件并取别名为WAV,在操作过程中可用这个别名来控制它所打开的设备了。
2)Close alias_name:Close命令用来关闭别名为alias_name的设备,在关闭程序时必须调用该命令否则其它的程序将无法打开该设备。
3)Play alias_name:Play命令用来播放别名为alias_name的媒体文件,成功的打开设备后就可调用该命令来播放媒体文件了。
4)Stop alias_name命令用来停止播放媒体文件。
5)Seek alias_name命令用来设置当前播放的位置.(需事先设定时间格式) 。
6)Set alias_name[audio all off][audio all on][time format ms]命令用来设置设备的各种状态.如:静音,有声音,时间格式为毫秒等。
7)Status alias_name[length][mode][position]命令用来取得设备的状态,如该媒体文件的长度、该媒体文件所处状态、该媒体文件的当前位置等。
下面的代码实现了AVI文件的播放;
Dim i As Long, RS As String, cb As Long, A$, x As Long, y As Long RS = Space$(128) A$ = "e:\kt.avi" 'Frame1为播放AVI文件的框架窗口; i = mciSendString("open AVIvideo!" & A$ & " alias movie parent " & Frame1.hWnd & " style child", RS, 128, 0) i = mciSendString("play movie", RS, 128, 0) |
在实际应用中, 还涉及很多具体的编程细节, 比如播放进度的显示、播放进度的改变、视频播放的窗口控制、播放界面的设计等等,这些功能的实现,读者朋友们可以参考MSDN。
小结 由于篇幅的限制,笔者只能对各种播放多媒体文件的方法泛泛地讨论一下,其实每一种方法都很强大,读者朋友们需要在实践中不断摸索,才能灵活运用,发挥出它们的强大功能来。
查看本文来源