用Delphi制作录音程序2010-11-23Delphi是Inprise(前Borland)公司的优秀的可视化编程工具,它自带的Mediaplayer控件是开发多媒体的利器。用它几分钟就可以做出一个象解霸一样可以播放多媒体文件的程序来。但可能很少人知道,用它也可以做一个录音程序。运行Delphi,在System页拖一个Mediaplayer控件到窗体上,默认名为Mediaplayer1。由于我们的程序是采用自己的按钮,所以将Mediaplayer1的Visible属性设置为False,其它属性保持默认值。再放两个按钮Button1和Button2。Button1的属性Name改为BtStart,Caption改为"开始录音", Button2的属性Name改为BtStop,Caption改为"停止录音",Enabled属性改为False。然后切换窗口到代码窗口,开始书写代码。程序中,我们定义了一个Wav文件的文件头格式,录音时先创建一个只有文件头的Wav文件,然后将Mediaplayer1录制下来的声音写进文件。其中CreateWav过程的几个参数意义如下:第一个channels代表声道,取1时代表单声,取2时代表立体声。resolution也只有两个值可以选择,取8时代表8位声音,取16时代表16位声音,rate则代表声音频率,如11025,22050, 44100。值越大则声音越清晰,当然,所录制的文件也越大。最后一个参数则代表对应的文件名称了。所以CreateWav可以有以下形式:CreateWav(1,8,11025,"C:abc.wav");//在C盘根目录下创建一个8位单声道频率为11025的名为abc.wav的Wav文件CreateWav(2,16,44100,"C:abc.wav");//在C盘根目录下创建一个16位立体声道频率为44100的名为abc.wav的Wav文件外国一个很出名的用Delphi编写的远程控制软件Netbus有一个声音监听功能,就是用本文的方法写的。它先把对方的声音录制下来,然后传送回来,达到监听对方的目的。当然,前提是对方必须安装有话筒,否则监听到的是对方播放的声音(如打开解霸或者Readplay播放,运行本程序,就可以把播放的声音录制下来了)。实际上,现在的网络声音传播技术已经发展到一定阶段,语音对讲和IP电话等也开始成熟。不过它们采用的是VOX格式或者ACM格式,具体代码可以在我的主页http://Lovejingtao.126.com下载。但如果对VOX或者ACM格式不熟悉的朋友,也可以用本文的方法来制作自己的“录音机”。至于如何调用系统自带的avifil32.dll来进行网络视频播放,在有机会时再跟大家交流吧。