有这样的语音闹钟,你还会懒床吗??

来源:CSDN 发布时间:Nov 16, 2020, 7:22:24 PM 原地址:https://blog.csdn.net/weixin_45769564/article/details/109727761

起床困难户既是一个群体的统称,也是一种新的文化现象。天气渐渐变凉,相信很多小盆友会在早上起床时都会有这样一种问题。身为程序员的我们,何不借我们使用的工具为自己制作一款属于自己的闹钟呢?
下面是我为自己设计的一款语音闹钟小程序
在制作之初,我们首先要明确我们产品的目标功能:
(1)使用TTS,实现利用微软windows系统插件,并调用这个插件的功能,帮助我们实现语音提示的功能
(2)基本的闹铃功能,可以自定义语音提示内容
在明确了产品相关功能的前提下,我们来设计相应的界面。在这里插入图片描述
在设计完界面后,再根据界面完善一下我们的目标功能
当我们确定好闹铃时间后,那闹铃的时间就不能乱改了

Private Sub Command1_Click()
Text2(0).Enabled = False
Text2(1).Enabled = False
Text1.Enabled = False
Timer1.Enabled = True
End Sub

如果想更改闹铃时间,那我们还需以下设计

Private Sub Command2_Click()
Text2(0).Enabled = True
Text2(1).Enabled = True
Text1.Enabled = True
Timer1.Enabled = False
End Sub

闹铃时间的设定用一个函数就可以搞定

Private Sub Form_Load()
Text2(0).Text = DateAdd("n", 1, Now)
Text2(1).Text = DateAdd("h", 6, Now)
End Sub

最后是我们要引入的对象,vb是基于面向对象的,因此不能直接引入,但我们可以调用
利用我们所学的知识,创建一个对象实例,利用关键字来进行设置,像下面这样

 Dim o As Object
    Set o = CreateObject("sapi.spvoice")
    o.speak (Text1.Text)

我们是需要一个实时监测的功能,以判断是否到达我们所设定的时间,当到时间后,闹铃就直接读出我们事先设定好的语音文本即可

Private Sub Timer1_Timer()
'现在时间
Label2.Caption = "现在时间:" & Now


Dim i%
For i = 0 To Text2.UBound Step 1
    If Text2(i).Text = CStr(Now) Then
    'MsgBox "第" & (i + 1) & "个闹钟开始"
    '语音文本
    Dim o As Object
    Set o = CreateObject("SAPI.SpVoice")
    o.speak (Text1.Text)
    
    
    End If
    Next i
    
End Sub

windows本身就是一个很大的数据库,我们可以从中调取很多可以用的对象。
一款语音闹铃就做好了。