全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3232
推到 Plurk!
推到 Facebook!

直接錄下電腦音效卡所發出的聲音!!!!

尚未結案
mtmkid
一般會員


發表:17
回覆:19
積分:7
註冊:2004-04-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-21 14:42:50 IP:61.64.xxx.xxx 未訂閱
之前好像有看到一篇在討論直接錄下音效卡發出的聲音的文章.... 簡單的說就是目前電腦喇叭所發出的聲音,可以錄音下來存檔的 但卻不曉得放到哪去了???? 不知道是否有前輩可提供這方面的資料.. 謝謝!! 發表人 - mtmkid 於 2004/10/21 16:00:29
scott777
一般會員


發表:10
回覆:15
積分:5
註冊:2002-08-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-21 14:54:38 IP:61.230.xxx.xxx 未訂閱
引言: 之前好像有看到一篇在討論直接錄下音效卡發出的聲音的文章.... 但卻不曉得放到哪去了???? 不知道是否有前輩可提供這方面的資料.. 謝謝!!
別人寫好的範例程式 http://cobra.ee.ntu.edu.tw/~oops/software/Adv_Chatroom1.rar ~~~~~~~~~~~~~~~~~~~~~~~ 程式錯誤千萬行, 改來改去費思量, 哀~客戶吵吵又嚷嚷, 真想把他抓來去撞牆。
huei_brother
一般會員


發表:36
回覆:15
積分:10
註冊:2004-08-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-21 17:08:01 IP:140.127.xxx.xxx 未訂閱
scott777您好 可否幫忙看一下檔案好像不是錄下音效卡聲音的程式 麻煩你囉因為我也粉需要謝謝
scott777
一般會員


發表:10
回覆:15
積分:5
註冊:2002-08-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-21 20:51:20 IP:61.64.xxx.xxx 未訂閱
這是錄麥克風的聲音 不知道是不是你需要的? ~~~~~~~~~~~~~~~~~~~~~~~ 程式錯誤千萬行, 改來改去費思量, 哀~客戶吵吵又嚷嚷, 真想把他抓來去撞牆。
mtmkid
一般會員


發表:17
回覆:19
積分:7
註冊:2004-04-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-21 22:12:09 IP:61.64.xxx.xxx 未訂閱
引言: 這是錄麥克風的聲音 不知道是不是你需要的?
我不是要錄麥克風的聲音... 我是想直接錄電腦裡發出的聲音,喇叭發出的聲音,音效卡所發出的聲音 以上指的都是同樣意思,就是想錄下電腦正播放的聲音.. 不知道有沒有這方面的資料呢 感謝你的回應!!!
linmon416
一般會員


發表:11
回覆:44
積分:11
註冊:2003-12-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-28 09:48:58 IP:211.76.xxx.xxx 未訂閱
不知那位大大有資料或研究的,煩麻提供些資訊給我們,好讓我們參考參考,因為我也需要,謝謝
linmon416
一般會員


發表:11
回覆:44
積分:11
註冊:2003-12-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-02 09:52:47 IP:211.75.xxx.xxx 未訂閱
mtmkid你好: 下面有個程式試試看(Delphi),是在k.top找的,而我的做法是打開一個flash,並執行此程式去錄flash的聲音,但在錄之前必須做一些設定,必須先執行縮在右下角的音量控制,選擇選項中的內容,選擇音量調整用於錄音,顯示下列音量控制,選擇你要的控制(會因音效卡的不同而有不同的選項),按確定,之後出現錄音控制畫面,此時我是把聲波輸出混音器選取,並調整其大小聲即可. 程序中,我們定義了一個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文件
 
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就是錄制的聲音檔。但這種情況很少發生。(機會幾乎為0)
mtmkid
一般會員


發表:17
回覆:19
積分:7
註冊:2004-04-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-02 22:18:59 IP:61.62.xxx.xxx 未訂閱
感謝linmon416前輩的資料...我沒碰過Delphi不過 我會來試試看這方法,若有較好的方法也會分享在這裡 謝謝你的回應!!!
linmon416
一般會員


發表:11
回覆:44
積分:11
註冊:2003-12-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-04 12:14:16 IP:211.76.xxx.xxx 未訂閱
mtmkid你好: 我沒用過BCB,所以我無法幫你轉成BCB,請會的人幫你轉,我會的只有這些了,這程式真的可以錄喔!
系統時間:2024-11-25 19:54:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!