PDA

View Full Version : سوال: بلند بودن صدا هنگام ضبط صوت با استفاده از کد دلفی



mbshareat
دوشنبه 04 دی 1391, 23:32 عصر
سلام
من خیلی پیش در مورد چگونگی ضبط خروجی صوت بلندگوسوال کرده بودم. در این پست (http://barnamenevis.org/showthread.php?284420-%D8%A8%D8%A7-%DA%86%D9%87-%DA%A9%D8%AF%DB%8C-%D9%85%DB%8C%D8%B4%D9%87-%D8%B5%D9%88%D8%AA%DB%8C-%DA%A9%D9%87-%D8%AF%D8%B1-%D8%AD%D8%A7%D9%84-%D9%BE%D8%AE%D8%B4-%D8%A7%D8%B2-%D8%A8%D9%84%D9%86%D8%AF%DA%AF%D9%88%D8%B3%D8%AA-%D8%B6%D8%A8%D8%B7-%DA%A9%D8%B1%D8%AF%D8%9F&p=1253977&viewfull=1#post1253977) هم جواب اومده.
مشکل من اینه که چه با این کد:

uses

MMSYSTEM,.....

procedure TForm1.Button1Click(Sender: TObject);
var
MRet : Integer;
ErrText : PChar;
bufer : array [0..128] of char;
begin
////creating an empty wave-file
ErrText:=@Bufer;
MRet := mciSendString('open new type waveaudio alias SoundMu buffer 6',nil,0,0);
* if MRet<>0 then
begin *
mciGetErrorString(MRet,ErrText,128);
ShowMessage(String(ErrText)); *
end;
MRet := mciSendString('record SoundMu',nil,0,0);
* if MRet<>0 then begin *
mciGetErrorString(MRet,ErrText,128);
ShowMessage(String(ErrText)); *
end;
MRet := mciSendString('stop SoundMu',nil,0,0);
* if MRet<>0 then begin *
mciGetErrorString(MRet,ErrText,128);
ShowMessage(String(ErrText)); *
end;
MRet := mciSendString('save SoundMu test.wav',nil,0,0);
* if MRet<>0 then begin *
mciGetErrorString(MRet,ErrText,128);
ShowMessage(String(ErrText)); *
end;
MRet := mciSendString('close SoundMu',nil,0,0);
* if MRet<>0 then
begin *
mciGetErrorString(MRet,ErrText,128);
ShowMessage(String(ErrText)); *
end;
////recording sound
MediaPlayer1.DeviceType:=dtAutoSelect;
MediaPlayer1.FileName:='Test.wav';
MediaPlayer1.Open;
MediaPlayer1.StartRecording;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
///stop recording and save file
MediaPlayer1.Stop;
MediaPlayer1.Save;
MediaPlayer1.Close;
end;

صدا رو صبط کنم یا با Sound Recorder در هر حال صدا خیلی بلندتر اونیکه شنیده میشه ضبط میشه.
من تو محیط XP کار می کنم.
مجبورم صدا رو در حدی که به زور شنیده میشه پایین بیارم تا صوت در حد نه بلند و نه آهسته ضبط بشه.
کسی راهی نداره که نیازی به کم کردن ولوم فیزیکی بلندگو و نیز ولوم قسمت Volum Control از پنجره Volum Control نباشم؟
لطفا اگه ممکنه زودتر جواب بدین یه کم عجله دارم.

Felony
سه شنبه 05 دی 1391, 09:10 صبح
توقع خاصی از اون کد نباید داشته باشید ، اون کد خیلی سطحی هست ، بهتره از کامپوننت های مربوطه به این کار مثل Audio Lab استفاده کنید ، راه حل این موارد چیزی نیست که هر کسی بدونه ، طرف باید تخصصی روی فلان موضوع ( مثلا صوت در ویندوز ) کار کرده باشه و Document های مربوطه رو کامل مطالعه کرده باشه تا اولا بدونه اون پشت داره چی میگذره و دوما بتونه با توجه به امکاناتی که ویندوز در اختیار میزاره براش راه حل ارائه کنه ، اگر مشتاق به استفاده از کامپوننت های آماده نیستید به دنبال جوابتون اینجا هم نباشید ، تنها جایی که میتونه بهتون کمک کنه انجمن های مایکروسافت یا Stack over flow هست که با توجه به تجاربم دومی رو بازم بعید میدونم که کمک خاصی جز همون معرفی کامپوننت ها بهتون بکنه .

mbshareat
سه شنبه 05 دی 1391, 17:18 عصر
میشه حد اقل بفرمایید چه عبارتی رو جستجو بدم؟
من یه کم توی گوگل جستجو دادم.نتیجه خوبی نگرفتم.
من دوتا کامپوننت نصب کردم اما کامل نصب نشدند و البته نمیدونم چطور بکار ببرم؟