精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>● VB和Basic(1)>>高级技巧>>[转载]编制自已的电话录音小程序

主题:[转载]编制自已的电话录音小程序
发信人: garfieldmao()
整理人: fishy(2000-08-22 08:03:58), 站内信件
发信人: zkboy (小小鸟), 信区: VisualBasic        
标  题: 编制自已的电话录音小程序 
发信站: BBS 水木清华站 (Fri Apr 14 00:18:55 2000) 
 
或许你会认为用计算机进行电话录音需要昂贵的专用软件,其实只要懂得VB和Ac

cess的 
一些基本知识,我们也可以自己制作一个具备电话录音、录音数据保存、查询功

能的小 
系统。大概只需1500元左右,其费用主要用于增添所需的声卡、音箱及具有语音

功能的 
Modem(当然还有你的脑力劳动),比起两三万元的专用录音软件,可以说是物美

价廉了 
。 
   首先介绍该系统的工作原理:利用VB5.0的OLE容器控件,在运行时创建嵌入对

象的方 
法,激活在WIN95注册过的录音软件,将输入到声卡的电话语音信号录制为WAV文

件,嵌 
入OLE容器控件中。由于把OLE容器控件与某个数据库绑定,在声音文件嵌入OLE容

器控件 
的同时也存入了数据库。以下将详细地介绍小系统的实现过程,主要有设备的连

接、数 
据库的建立、简单的VB编程。 
一、设备的连接 
   设备的连接主要指Modem与电话线、电话机,Modem与声卡之间的连接方式。先

将墙上 
的电话进线插到Modem的接口上,再用另一根电话线接在Modem与电话机之间,把

Modem与 
电话机串联起来。Modem与电话机之间的顺序必须被考虑到。如果电话进线先进入

电话机 
,当提起电话听筒时,信号将先被电话机截取,而不能进入Modem。接下来用双向

音频输 
入输出线把Modem的SPK端口和声卡的LINE INC端口连起来;将Modem的声音信号输

入到声 
卡。好了,完成设备的连接后,我们就可以开始进行软件方面的制作了。 
二、用Access建立一个收藏录音数据的数据库 
   首先建立一个存放声音数据的数据库,数据库可以是存储在Microsoft Jet数

据库引 
擎中的Microsoft 
Access、dBASE、Microsoft Foxpro、Excel等。由于需保存的数据并不复杂,我

选用了 
小型而易用的Microsoft Access97,建立一个名为Recorder的数据库来管理录音

数据。 
在Recordeer数据库中生成表Recording,该表包含四个字段:ID、录音文件、Da

y、Tim 
e。结构如下: 
----------------------------------------------- 
字段名称   数据类型   字段属性 
----------------------------------------------- 
ID         自动编号   递增 
录音齐件   OLE对象 
Day        日期/时间  默认值=Date();格式=长日期 
Time       日期/时间  默认值=Time();格式=长时间 
------------------------------------------------ 
   把数据库Recorder保存在C:\下,以待后用。数据库方面的工作暂时到此为止

,接着 
将要用VB来编写一个小程序,实现录音、自动将数据存入数据库的功能。 
三、用VB5.0 建立录音小程序 
   在VB5.0下新建一“标准EXE”工程,打开工程中的空白窗体Form1。在Form1上

添加各 
种控件。 
1.在Form1上添加Data控件 
   将Data控件添加到窗体上,Data控件属性设置如下: 
------------------------------------------- 
(名称)         Data1 
------------------------------------------- 
Connect          Access 
DatabaseName     C:\RECORDER.mdb 
Recordsource     recording 
------------------------------------------- 
   以上属性设置把Data控件绑定到刚才建立的Access数据库Recorder的recordi

ng表。 
 
2.在Form1上添加Text Box控件 
   在Form1上添加三个Text Box控件,并在适当位置增添相应的标签。文本框属

性设置 
如下: 
------------------------------------------------------------ 
            Text Box控件1     Text Box控件2    Text Box控件3 
------------------------------------------------------------ 
(名称)    Text1             Text2             Text3 
Data Field  ID                Day               Time 
Datasource  Data1             Data1             Data1 
------------------------------------------------------------ 
   以上属性设置使三个Text Box绑定到Data控件,用于从与Data控件连接的数据

库中分 
别显示字段ID、Day、Time。 
3.在Form1上添加OLE容器控件 
   在Form1上添加OLE容器控件,属性设置如下: 
---------------------------------- 
(名称)         OLE1 
---------------------------------- 
Data Field       录音文件 
Datasource       Data1 
Autoactivate     2-Doubleclick 
---------------------------------- 
   通过属性设置把它与Data控件绑定,从Recorder数据库中显示字段“声音文件

”。当 
OLE容器中的录音数据被更新时,被更新或新增的声音对象将自动被写回数据库。

当双击 
OLE容器中的数据时,将自动播放声音文件。 
4.在Form1上添加Command Button控件 
   添加两个Command Button控件到Form1上,其中一个命令按钮用于调用录音机

以录制 
通话数据,并将录音的声音数据嵌入到OLE容器中。该按钮属性设置如下: 
--------------------- 
(名称)    Command1 
--------------------- 
Caption     开始录音 
--------------------- 
双击Command1,在Private Sub Command1_Click()中输入以下代码: 
Data1.DatabaseName="C:\recorder.mdb" 
Data1.Recordsource="Recording" 
Data1.Refresh '创建一条新记录 
Data1.Recordset.AddNew '创建一个嵌入声音对象 
OLE1.CreateEmbed "","SOUNDREC" '激活WIN95附件下的录音机 
OLE1.DoVerb 0 
End Sub 
   另一个按钮用于关闭程序,属性设置如下: 
---------------------- 
(名称)     Command2 
---------------------- 
Caption      退出 
---------------------- 
双击Command2,在Private Sub Command2_Click()中输入以下代码: 
Unload Form1 
End 
End Sub 
5.编写Form1的Activate过程 
   Form1的Activate过程代码,用于在Form1打开的同时打开通信软件SuperVoic

e2.2并 
激活Command1的功能。双击Form1,弹出编写代码窗口,在对象下拉列表中选择F

orm,在 
过程下拉列表中选择Activate,在Pri 
vate Sub Form_Activate()中输入以下代码: 
'激活Command1的功能 
Call Command1_Click 
'调用安装在d:\supervoc\program\中的通信程序SuperVoice2.2,来启动Modem的

语音功 
能 
dim tel 
tel=shell("d:\supervoc\program\supervoc.exe",1) 
appactivate tel 
End Sub 
四、程序运行结果 
   保存工程,并将其生成可执行程序“录音.EXE”,放在C:\下面。好了,大功

告成。 
现在退出VB,试一试 
在WIN95下运行。 
   当双击“录音.EXE”时,程序自动打开通信软件SuperVoice2.2(一般购买Mo

dem时都 
随机附送SuperVoice2.2),在SuperVoice2.2的系统设置中将语音输入设备设为

电话听 
筒,及启动SuperVoice2.2时弹出仿真电话拨号盘(只需在第一次使用时设置)。

设为电 
话听筒的好处是通话时不需要麦克风,直接使用电话机。接着出现窗体Form1,并

自动启 
动附件下的录音机。进行通话录音时,单击仿真电话拔号盘上的免提键及录音机

上的录 
制按钮,开始录音。录制的声音文件被嵌入OLE容器中,同时被写到与OLE容器连

接的数 
据库Recorder.mdb中,并自动生成录音的日期时间。除了录音功能外,还可以通

过点击 
Data控件上的箭头按钮选择记录查询,双击OLE容器(显示为喇叭图标);自动播

放选择 
的通话录音。如果再给窗体Form1添上DBComboBox、DBGrid控件,将使其查询功能

更为完 
善。 
   顺便提一下,刚写完这篇文章,我又找到一个可在Win95注册的录音软件,就

是创新 
的SoundO'LE,由于界面漂亮且没有限制录音长度(附件的录音机的录音长度只有

一分钟 
),我将准备拿它来取代那土里上气的录音机,使得我的小程序更具专业性。 


   以上代码在VB5.0、Win95系统上调试通过。 


----------------------------------------------- 
字段名称   数据类型   字段属性 
----------------------------------------------- 
ID         自动编号   递增 
录音齐件   OLE对象 
Day        日期/时间  默认值=Date();格式=长日期 
Time       日期/时间  默认值=Time();格式=长时间 
------------------------------------------------ 
   把数据库Recorder保存在C:\下,以待后用。数据库方面的工作暂时到此为止
,接着 
将要用VB来编写一个小程序,实现录音、自动将数据存入数据库的功能。 
三、用VB5.0 建立录音小程序 
   在VB5.0下新建一“标准EXE”工程,打开工程中的空白窗体Form1。在Form1上
添加各 
种控件。 
1.在Form1上添加Data控件 
   将Data控件添加到窗体上,Data控件属性设置如下: 
------------------------------------------- 
(名称)         Data1 
------------------------------------------- 
Connect          Access 
DatabaseName     C:\RECORDER.mdb 
Recordsource     recording 
------------------------------------------- 
   以上属性设置把Data控件绑定到刚才建立的Access数据库Recorder的recordi
ng表。 
 
2.在Form1上添加Text Box控件 
   在Form1上添加三个Text Box控件,并在适当位置增添相应的标签。文本框属
性设置 
如下: 
------------------------------------------------------------ 
            Text Box控件1     Text Box控件2    Text Box控件3 
------------------------------------------------------------ 
(名称)    Text1             Text2             Text3 
Data Field  ID                Day               Time 
Datasource  Data1             Data1             Data1 
------------------------------------------------------------ 
   以上属性设置使三个Text Box绑定到Data控件,用于从与Data控件连接的数据
库中分 
别显示字段ID、Day、Time。 
3.在Form1上添加OLE容器控件 
   在Form1上添加OLE容器控件,属性设置如下: 
---------------------------------- 
(名称)         OLE1 
---------------------------------- 
Data Field       录音文件 
Datasource       Data1 
Autoactivate     2-Doubleclick 
---------------------------------- 
   通过属性设置把它与Data控件绑定,从Recorder数据库中显示字段“声音文件
”。当 
OLE容器中的录音数据被更新时,被更新或新增的声音对象将自动被写回数据库。
当双击 
OLE容器中的数据时,将自动播放声音文件。 
4.在Form1上添加Command Button控件 
   添加两个Command Button控件到Form1上,其中一个命令按钮用于调用录音机
以录制 
通话数据,并将录音的声音数据嵌入到OLE容器中。该按钮属性设置如下: 
--------------------- 
(名称)    Command1 
--------------------- 
Caption     开始录音 
--------------------- 
双击Command1,在Private Sub Command1_Click()中输入以下代码: 
Data1.DatabaseName="C:\recorder.mdb" 
Data1.Recordsource="Recording" 
Data1.Refresh '创建一条新记录 
Data1.Recordset.AddNew '创建一个嵌入声音对象 
OLE1.CreateEmbed "","SOUNDREC" '激活WIN95附件下的录音机 
OLE1.DoVerb 0 
End Sub 
   另一个按钮用于关闭程序,属性设置如下: 
---------------------- 
(名称)     Command2 
---------------------- 
Caption      退出 
---------------------- 
双击Command2,在Private Sub Command2_Click()中输入以下代码: 
Unload Form1 
End 
End Sub 
5.编写Form1的Activate过程 
   Form1的Activate过程代码,用于在Form1打开的同时打开通信软件SuperVoic
e2.2并 
激活Command1的功能。双击Form1,弹出编写代码窗口,在对象下拉列表中选择F
orm,在 
过程下拉列表中选择Activate,在Pri 
vate Sub Form_Activate()中输入以下代码: 
'激活Command1的功能 
Call Command1_Click 
'调用安装在d:\supervoc\program\中的通信程序SuperVoice2.2,来启动Modem的
语音功 
能 
dim tel 
tel=shell("d:\supervoc\program\supervoc.exe",1) 
appactivate tel 
End Sub 
四、程序运行结果 
   保存工程,并将其生成可执行程序“录音.EXE”,放在C:\下面。好了,大功
告成。 
现在退出VB,试一试 
在WIN95下运行。 
   当双击“录音.EXE”时,程序自动打开通信软件SuperVoice2.2(一般购买Mo
dem时都 
随机附送SuperVoice2.2),在SuperVoice2.2的系统设置中将语音输入设备设为
电话听 
筒,及启动SuperVoice2.2时弹出仿真电话拨号盘(只需在第一次使用时设置)。
设为电 
话听筒的好处是通话时不需要麦克风,直接使用电话机。接着出现窗体Form1,并
自动启 
动附件下的录音机。进行通话录音时,单击仿真电话拔号盘上的免提键及录音机
上的录 
制按钮,开始录音。录制的声音文件被嵌入OLE容器中,同时被写到与OLE容器连
接的数 
据库Recorder.mdb中,并自动生成录音的日期时间。除了录音功能外,还可以通
过点击 
Data控件上的箭头按钮选择记录查询,双击OLE容器(显示为喇叭图标);自动播
放选择 
的通话录音。如果再给窗体Form1添上DBComboBox、DBGrid控件,将使其查询功能
更为完 
善。 
   顺便提一下,刚写完这篇文章,我又找到一个可在Win95注册的录音软件,就
是创新 
的SoundO'LE,由于界面漂亮且没有限制录音长度(附件的录音机的录音长度只有
一分钟 
),我将准备拿它来取代那土里上气的录音机,使得我的小程序更具专业性。 

   以上代码在VB5.0、Win95系统上调试通过。 

--
┏━━━━━━━━━━━━━━━━━━━━━┓
┃请在[将本文章寄一份给原作者]之后打“√”。┃
┃      猫仔  OICQ:1251089      ┃
┃         Email:[email protected]           ┃
┃ VB编程园 Http://maozai.home.china.com  ┃
┗━━━━━━━━━━━━━━━━━━━━━┛

※ 修改:.garfieldmao 于 Aug  8 11:58:50 修改本文.[FROM: 202.105.152.16]
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.105.152.16]

[关闭][返回]