亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

如何用Delphi制作錄音程序

2019-11-18 18:41:43
字體:
來源:轉載
供稿:網友
      如何用Delphi制作錄音程序
                                                                陳經韜

   Delphi是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來進行網絡視頻播放,在有機會時再跟大家交流吧。
本程序在Pwin98+Delphi5下通過。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, MPlayer;

type
TWavHeader = record //定義一個Wav文件頭格式 
rId : longint; 
rLen : longint; 
wId : longint; 
fId : longint; 
fLen : longint; 
wFormatTag : Word
nChannels : word; 
nSamplesPerSec : longint; 
nAvgBytesPerSec : longint; 
nBlockAlign : word; 
wBitsPerSample : word; 
dId : longint; 
wSampleLength : longint; 
end;
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
BtStart: TButton;
BtStop: TButton;
procedure CreateWav(channels : word; resolution : word; rate : longint; fn : string);//自定義寫一個Wav文件頭過程
procedure BtStartClick(Sender: TObject);
procedure BtStopClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.CreateWav( channels : word; { 1(單聲)或者2(立體聲) }
resolution : word; { 8或者16,代表8位或16位聲音 }
rate : longint; { 聲音頻率,如11025,22050, 44100}
fn : string { 對應的文件名稱 } );
var
wf : file of TWavHeader;
wh : TWavHeader;
begin
wh.rId := $46464952; 
wh.rLen := 36; 
wh.wId := $45564157; 
wh.fId := $20746d66; 
wh.fLen := 16; 
wh.wFormatTag := 1; 
wh.nChannels := channels; 
wh.nSamplesPerSec := rate; 
wh.nAvgBytesPerSec := channels*rate*(resolution div 8);
wh.nBlockAlign := channels*(resolution div 8);
wh.wBitsPerSample := resolution;
wh.dId := $61746164; 
wh.wSampleLength := 0; 

assignfile(wf,fn); {打開對應文件 } 
rewrite(wf); {移動指針到文件頭} 
write(wf,wh); {寫進文件頭 } 
closefile(wf); {關閉文件 } 
end;
procedure TForm1.BtStartClick(Sender: TObject);
begin
try
//在程序當前目錄下創建一個Wav文件Temp.wav
CreateWav(1, 8, 11025, (ExtractFilePath(application.ExeName)+ 'Temp.wav'));
MediaPlayer1.DeviceType := dtAutoSelect;
MediaPlayer1.FileName := (ExtractFilePath(Application.ExeName)+ 'Temp.wav');
MediaPlayer1.Open;
MediaPlayer1.StartRecording;
BtStart.Enabled:=false;
BtStop.Enabled:=true;
except
BtStart.Enabled:=True;
BtStop.Enabled:=false;
Application.MessageBox('媒體設備初始化失??!','錯誤',MB_ICONERROR+MB_OK);
end;
end;

procedure TForm1.BtStopClick(Sender: TObject);
begin
try
MediaPlayer1.Stop;
MediaPlayer1.Save;
MediaPlayer1.Close;
Application.MessageBox('聲音錄制完畢!','信息',MB_ICONINFORMATION+MB_OK);
BtStart.Enabled:=True;
BtStop.Enabled:=false;
except
Application.MessageBox('保存聲音文件出錯!','錯誤',MB_ICONERROR+MB_OK);
BtStart.Enabled:=True;
BtStop.Enabled:=false;
end;
end;
end.

補充:1、錄制的文件播放時可能要把音頻屬性的Wav調大。
2、如果系統安裝了其它一些音頻驅動程序,則可能錄制的Wav文件大小為零,但會同時生成一個TMP結尾的文件,將其擴展名改為Wav就是錄制的聲音文件。但這種情況很少發生。(機會幾乎為零^-^)
3、本程序在運行解霸和Replayer下錄制聲音通過。

上一篇:Delphi隨筆一

下一篇:談Delphi編程中“流”的應用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品福利电影| 亚洲精品欧美日韩| 亚洲美女在线看| 91高潮精品免费porn| 久久久国产成人精品| 都市激情亚洲色图| 色偷偷av亚洲男人的天堂| 国产精品永久免费| 亚洲人成在线免费观看| 91欧美精品午夜性色福利在线| 91精品国产综合久久久久久蜜臀| 久久91精品国产91久久跳| 久久精品国产2020观看福利| 久久免费精品日本久久中文字幕| 久久精品国产成人| 久久久人成影片一区二区三区| 亚洲一区二区久久久久久| 欧美刺激性大交免费视频| 久久国产精品久久精品| 日韩欧美在线字幕| 日韩激情片免费| 亚洲欧美在线一区二区| 日本一区二区不卡| 欧美大秀在线观看| 亚洲国产高清福利视频| 亚洲一区美女视频在线观看免费| www.亚洲成人| 日韩国产激情在线| 欧美一级大片在线免费观看| 日韩高清欧美高清| 欧洲亚洲免费在线| 亚洲精品欧美日韩| 亚洲性夜色噜噜噜7777| 岛国精品视频在线播放| 成人性生交大片免费观看嘿嘿视频| 欧美激情久久久久久| 亚洲一区二区福利| 日韩欧美国产骚| 国产午夜精品视频免费不卡69堂| 国产乱人伦真实精品视频| 国产精品久久77777| 久久久99免费视频| 欧美一级淫片播放口| 国产午夜精品免费一区二区三区| 91超碰中文字幕久久精品| 日本精品免费一区二区三区| 日本欧美国产在线| 国产精品草莓在线免费观看| 国产亚洲视频在线观看| 精品国产一区二区三区久久久狼| 26uuu另类亚洲欧美日本老年| 欧美高跟鞋交xxxxxhd| 国产v综合ⅴ日韩v欧美大片| 欧美精品一区在线播放| 亚洲天堂成人在线视频| 国产亚洲欧洲高清一区| 国产亚洲视频在线| 精品美女永久免费视频| 久久这里有精品视频| 久久免费精品日本久久中文字幕| 亚洲欧美激情四射在线日| 亚洲一级片在线看| 欧美综合在线第二页| 成人黄色免费看| 日韩精品一区二区三区第95| 国产成人精品久久二区二区| 久久久精品网站| 欧洲午夜精品久久久| 一区二区欧美久久| 日韩激情视频在线播放| 欧美国产视频一区二区| 91免费在线视频| 91精品久久久久久久久久另类| 91大神在线播放精品| 国产精品电影在线观看| 日韩欧美精品网址| 久久在精品线影院精品国产| 久久综合伊人77777尤物| 97福利一区二区| 2019国产精品自在线拍国产不卡| 国产精品麻豆va在线播放| 欧美日韩国产丝袜另类| 国产日本欧美一区二区三区在线| 亚洲精品99999| 中文日韩电影网站| 欧美不卡视频一区发布| 亚洲老头同性xxxxx| 亚洲最大av网站| 中文字幕日韩在线播放| 国产精品r级在线| 久99久在线视频| 国产不卡视频在线| 91av在线免费观看视频| 午夜欧美不卡精品aaaaa| 影音先锋欧美在线资源| 久久久中精品2020中文| 清纯唯美亚洲激情| 精品伊人久久97| 欧美精品一区二区免费| 97婷婷涩涩精品一区| 91精品国产沙发| 91精品视频免费| 啪一啪鲁一鲁2019在线视频| 91高潮精品免费porn| 日韩a**中文字幕| 国产精品狠色婷| 亚洲视频网站在线观看| 欧美性猛交视频| 91在线色戒在线| 国产91露脸中文字幕在线| 日韩av在线影院| 国产精品男女猛烈高潮激情| 国产99久久精品一区二区永久免费| 97香蕉超级碰碰久久免费软件| 黄色精品在线看| 国产欧美日韩最新| 国产91精品在线播放| 国产一区二区在线播放| 亚洲国产成人91精品| 亚洲精品白浆高清久久久久久| 久久久久久久久网站| 日韩中文字幕在线免费观看| 国产精品高精视频免费| 国产亚洲美女精品久久久| 欧美成人亚洲成人日韩成人| 国产视频丨精品|在线观看| 国产精品爱啪在线线免费观看| 538国产精品一区二区在线| 午夜精品一区二区三区在线| 北条麻妃久久精品| 色樱桃影院亚洲精品影院| 成人深夜直播免费观看| 欧美精品久久久久久久久久| 精品国产欧美一区二区三区成人| 国产国语刺激对白av不卡| 一色桃子一区二区| 日韩欧美在线免费| 久久影院免费观看| 欧美视频在线免费| 九九九久久国产免费| 亚洲自拍在线观看| 亚洲国产精品一区二区久| 国产午夜精品理论片a级探花| 九色91av视频| 亚洲综合视频1区| 国产一区二区三区在线看| 九九九热精品免费视频观看网站| 一区二区三区国产视频| 欧美高清在线观看| 欧美中文在线视频| 91地址最新发布| 国产精品日日做人人爱| 久久久成人精品视频| 欧美视频国产精品| 欧美精品成人91久久久久久久| 一色桃子一区二区| 一本久久综合亚洲鲁鲁| 国产精品自产拍高潮在线观看| 91精品啪在线观看麻豆免费| 欧美乱妇高清无乱码| 91九色综合久久| 国产欧美日韩精品丝袜高跟鞋| 亚洲国产黄色片| 欧美日韩亚洲一区二区|