二、实现语音报时
下面我们再继续个它添加语音报时的功能.其实很简单,主要思路就是获取当前时间,如果是整点(即,分针,时针都为零)时,我们可以运用MCI ( Media Control Interface , 媒体控制接口)来播放,你已经录好的报时的声音文件.下面我们具体来看一看怎样实现这一功能.
(1) 使用MCI控件
MCI是Windows提供的一个可以处理音频和视频的API(应用程序编程接口),通过它,我们可以很方便的实现对音频设备,和视频设备及其其他设备的控制.这一接口极大的方便了使用者,使我们可以只使用设备接口,而不用对实际的物理设备进行直接的操作.
为了使用MCI控件我们首先要点取Project ( 工程 ) / Components (组件)菜单,或在工具箱中点击右键,然后在弹除的菜单中选择部件,这时屏幕上会弹出如图所示的对话框.

在其中选中”microsoft Multimedia Control”,在单击确定按钮,就可以把MMControl控件添加到工具箱中了.当把MMControl控件添加到窗体中时,她的形状如下所示:

上面的九个按钮,分别表示九种功能.和普通的录音机上的按钮类似,从左到右分别是:Prev (向前) , Next (向后) , Play (播放) , Pause (暂停) , Back (快速倒带) , Step (快速进带) , Record ( 录音 ) ,和Eject (弹出).
使用时,先要为MMContorl控件指定一个要播放的文件,然后用Open命令打开它.然后再使用Play命令播放文件.最后关闭所打开的文件.
下面我们看看怎样用MMControl来实现语音报时功能.
下面是代码(我们这里主要给出所改动的地方):
‘ = = = = = = = = = = = = = = = = = = = = = = = =
‘ 每秒钟触发一次此事件,从而获取当时的时间,并调用相应的函数,画出三个针的位置
‘ = = = = = = = = = = = = = = = = = = = = = = = =
Private Sub Timer1 _ Timer ( )
miao = Second (time) miao = 60 – miao
fen = Minute (time) fen = 60 - fen
shi = Hour (time)
If shi > = 12 Then ‘因为一天之内时针要走二十四个钟头,也就是要走两圈,所以将下午和晚上的时间减去十二,就可以确定时针准确的位置
shi = shi - 12
End If
shi = 12 - shi miao = xianshimiao ( maio ) fen = xianshifen ( fen ) shi = xianshishi ( shi ) If fen = 0 and miao = 0 then ‘如果分针和秒针都为零,这位整点,根据时针的数报时
Select case shi Case 0 ‘零点,0.wav报时零点 MMControl1.FileName = App . Path & “ 0.wav ” ‘选择要打开的文件 MMControl1.Commond = “ Open ” ‘打开所选择的文件 MMControl1.Commond = “ Play ” ‘播放所选择的文件 Case 1 ‘ 一点,1.wav报时一点,以下依次类推 MMControl1.FileName = App . Path & “ 1.wav ” ‘选择要打开的文件 MMControl1.Commond = “ Open ” ‘打开所选择的文件 MMControl1.Commond = “ Play ” ‘播放所选择的文件 Case 2 MMControl1.FileName = App . Path & “ 2.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 3 MMControl1.FileName = App . Path & “ 3.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 4 MMControl1.FileName = App . Path & “ 4.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 5 MMControl1.FileName = App . Path & “ 5.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 6 MMControl1.FileName = App . Path & “ 6.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 7 MMControl1.FileName = App . Path & “ 7.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 8 MMControl1.FileName = App . Path & “ 8.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 9 MMControl1.FileName = App . Path & “ 9.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 10 MMControl1.FileName = App . Path & “ 10.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” Case 11 MMControl1.FileName = App . Path & “ 11.wav ” MMControl1.Commond = “ Open ” MMControl1.Commond = “ Play ” End Select
MMControl1.Commond = “ Close ”
End Sub | 不知道你的机子是否还能运行良好.毕竟再短短的一秒钟内,我们让计算机做的事情太多了.为了提高效率,我们可以考虑使用API函数.
我们先来看一下所要用到的相关知识.
|