程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 編制自已的電話錄音小程序

編制自已的電話錄音小程序

編輯:VB綜合教程
或許你會認為用計算機進行電話錄音需要昂貴的專用軟件,其實只要懂得VB和Access的一些基本知識,我們也可以自己制作一個具備電話錄音、錄音數據保存、查詢功能的小系統。大概只需1500元左右,其費用主要用於增添所需的聲卡、音箱及具有語音功能的Modem(當然還有你的腦力勞動),比起兩三萬元的專用錄音軟件,可以說是物美價廉了。
  首先介紹該系統的工作原理:利用VB5.0的OLE容器控件,在運行時創建嵌入對象的方法,激活在WIN95注冊過的錄音軟件,將輸入到聲卡的電話語音信號錄制為WAV文件,嵌入OLE容器控件中。由於把OLE容器控件與某個數據庫綁定,在聲音文件嵌入OLE容器控件的同時也存入了數據庫。以下將詳細地介紹小系統的實現過程,主要有設備的連接、數據庫的建立、簡單的VB編程。
  一、設備的連接
  設備的連接主要指Modem與電話線、電話機,Modem與聲卡之間的連接方式。先將牆上的電話進線插到Modem的接口上,再用另一根電話線接在Modem與電話機之間,把Modem與電話機串聯起來。Modem與電話機之間的順序必須被考慮到。如果電話進線先進入電話機,當提起電話聽筒時,信號將先被電話機截取,而不能進入Modem。接下來用雙向音頻輸入輸出線把Modem的SPK端口和聲卡的LINEINC端口連起來;將Modem的聲音信號輸入到聲卡。好了,完成設備的連接後,我們就可以開始進行軟件方面的制作了。
  二、用Access建立一個收藏錄音數據的數據庫
  首先建立一個存放聲音數據的數據庫,數據庫可以是存儲在MicrosoftJet數據庫引擎中的Microsoft
  Access、dBASE、MicrosoftFoxpro、Excel等。由於需保存的數據並不復雜,我選用了小型而易用的MicrosoftAccess97,建立一個名為Recorder的數據庫來管理錄音數據。在Recordeer數據庫中生成表Recording,該表包含四個字段:ID、錄音文件、Day、Time。結構如下:
  -----------------------------------------------
  字段名稱數據類型字段屬性
  -----------------------------------------------
  ID自動編號遞增
  錄音齊件OLE對象
  Day日期/時間默認值=Date();格式=長日期
  Time日期/時間默認值=Time();格式=長時間
  ------------------------------------------------
  把數據庫Recorder保存在C:下,以待後用。數據庫方面的工作暫時到此為止,接著將要用VB來編寫一個小程序,實現錄音、自動將數據存入數據庫的功能。
  三、用VB5.0建立錄音小程序
  在VB5.0下新建一“標准EXE”工程,打開工程中的空白窗體Form1。在Form1上添加各種控件。
  1.在Form1上添加Data控件
  將Data控件添加到窗體上,Data控件屬性設置如下:
  -------------------------------------------
  (名稱)Data1
  -------------------------------------------
  ConnectAccess
  DatabaseNameC:RECORDER.mdb
  Recordsourcerecording
  -------------------------------------------
  以上屬性設置把Data控件綁定到剛才建立的Access數據庫Recorder的recording表。
  2.在Form1上添加TextBox控件
  在Form1上添加三個TextBox控件,並在適當位置增添相應的標簽。文本框屬性設置如下:
  ------------------------------------------------------------
  TextBox控件1TextBox控件2TextBox控件3
  ------------------------------------------------------------
  (名稱)Text1Text2Text3
  DataFieldIDDayTime
  DatasourceData1Data1Data1
  ------------------------------------------------------------
  以上屬性設置使三個TextBox綁定到Data控件,用於從與Data控件連接的數據庫中分別顯示字段ID、Day、Time。
  3.在Form1上添加OLE容器控件
  在Form1上添加OLE容器控件,屬性設置如下:
  ----------------------------------
  (名稱)OLE1
  ----------------------------------
  DataField錄音文件
  DatasourceData1
  Autoactivate2-Doubleclick
  ----------------------------------
  通過屬性設置把它與Data控件綁定,從Recorder數據庫中顯示字段“聲音文件”。當OLE容器中的錄音數據被更新時,被更新或新增的聲音對象將自動被寫回數據庫。當雙擊OLE容器中的數據時,將自動播放聲音文件。
  4.在Form1上添加CommandButton控件
  添加兩個CommandButton控件到Form1上,其中一個命令按鈕用於調用錄音機以錄制通話數據,並將錄音的聲音數據嵌入到OLE容器中。該按鈕屬性設置如下:
  ---------------------
  (名稱)Command1
  ---------------------
  Caption開始錄音
  ---------------------
  雙擊Command1,在PrivateSubCommand1_Click()中輸入以下代碼:
  Data1.DatabaseName="C: ecorder.mdb"
  Data1.Recordsource="Recording"
  Data1.Refresh'創建一條新記錄
  Data1.Recordset.AddNew'創建一個嵌入聲音對象
  OLE1.CreateEmbed"","SOUNDREC"'激活WIN95附件下的錄音機
  OLE1.DoVerb0
  EndSub
  另一個按鈕用於關閉程序,屬性設置如下:
  ----------------------
  (名稱)Command2
  ----------------------
  Caption退出
  ----------------------
  雙擊Command2,在PrivateSubCommand2_Click()中輸入以下代碼:
  UnloadForm1
  End
  EndSub
  5.編寫Form1的Activate過程
  Form1的Activate過程代碼,用於在Form1打開的同時打開通信軟件SuperVoice2.2並激活Command1的功能。雙擊Form1,彈出編寫代碼窗口,在對象下拉列表中選擇Form,在過程下拉列表中選擇Activate,在Pri
  vateSubForm_Activate()中輸入以下代碼:
  '激活Command1的功能
  CallCommand1_Click
  '調用安裝在d:supervocprogram中的通信程序SuperVoice2.2,來啟動Modem的語音功能
  dimtel
  tel=shell("d:supervocprogramsupervoc.exe",1)
  appactivatetel
  EndSub
  四、程序運行結果
  保存工程,並將其生成可執行程序“錄音.EXE”,放在C:下面。好了,大功告成。現在退出VB,試一試
  在WIN95下運行。
  當雙擊“錄音.EXE”時,程序自動打開通信軟件SuperVoice2.2(一般購買Modem時都隨機附送SuperVoice2.2),在SuperVoice2.2的系統設置中將語音輸入設備設為電話聽筒,及啟動SuperVoice2.2時彈出仿真電話撥號盤(只需在第一次使用時設置)。設為電話聽筒的好處是通話時不需要麥克風,直接使用電話機。接著出現窗體Form1,並自動啟動附件下的錄音機。進行通話錄音時,單擊仿真電話拔號盤上的免提鍵及錄音機上的錄制按鈕,開始錄音。錄制的聲音文件被嵌入OLE容器中,同時被寫到與OLE容器連接的數據庫Recorder.mdb中,並自動生成錄音的日期時間。除了錄音功能外,還可以通過點擊Data控件上的箭頭按鈕選擇記錄查詢,雙擊OLE容器(顯示為喇叭圖標);自動播放選擇的通話錄音。如果再給窗體Form1添上DBComboBox、DBGrid控件,將使其查詢功能更為完善。
  順便提一下,剛寫完這篇文章,我又找到一個可在Win95注冊的錄音軟件,就是創新的SoundO'LE,由於界面漂亮且沒有限制錄音長度(附件的錄音機的錄音長度只有一分鐘),我將准備拿它來取代那土裡上氣的錄音機,使得我的小程序更具專業性。
  以上代碼在VB5.0、Win95系統上調試通過。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved