Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

Сигнал микрофона   Найти похожие ветки 

 
FBI Agent ©   (2006-04-03 17:39) [0]

Подскажите как сделать чтобы программа считывала сигнал из микрофона, и если он превысит -32,3 dB, тогда .... ну и там я буду делать дальше :)


 
XProger ©   (2006-04-03 18:54) [1]

WaveInStart


 
FBI Agent ©   (2006-04-03 21:34) [2]

XProger ©   (03.04.06 18:54) [1]
Если не затруднит покажи на примере, а то я раньше никогда таким не занимался...


 
Jeer ©   (2006-04-04 09:35) [3]

FBI Agent ©   (03.04.06 21:34) [2]

Начни и все образуется.
Справка win по MCI-коммандам


 
FBI Agent ©   (2006-04-04 15:26) [4]

Ну я не понимаю, неужели так трудно просто показать на маленьком примерчике как постоянно измерять сигнал микрофона и если он будет превышать заданный, тогда ....


 
Jeer ©   (2006-04-04 16:13) [5]

"Неужели так трудно показать на маленьком примерчике как открыть свой банк, короче, - свое дело и чтоб бабки текли вне завизимости от моих умственных напряжений ? "


 
FBI Agent ©   (2006-04-04 16:27) [6]

Толкового ответа сдесь мне наверное никто так и не даст...


 
Сергей М. ©   (2006-04-04 16:42) [7]

Первый раз про децибеллы слышишь что ли, "толковый" ты наш  вопрошающий ?

Или с элементарной математикой не знаком / не дружишь ?

Или двух слов связать не можешь, чтобы "толково" описать свои проблемы ?

"Как сделать .."   .. Да вестимо как - головой и руками !


 
XProger ©   (2006-04-04 17:55) [8]

Вот буквально отрывки кода
procedure TRecorder.Close;
begin
WaveInStop(WaveIn);
WaveInReset(WaveIn);
WaveInClose(WaveIn);
end;

constructor TRecorder.Create;
begin
inherited Create;
FHand:=AllocateHWND(WndProc);
end;

destructor TRecorder.Destroy;
begin
//DeallocateHWnd(FHand);
inherited Destroy;
end;

procedure TRecorder.Open(Frec, bit: integer);
var mm:TWaveFormatEx;
begin
mm:=CpcmWav(Frec,bit);
WaveInOpen(@WaveIn,0,@mm,FHand,0,CALLBACK_WINDOW);
end;

procedure TRecorder.StartRec;
var
index:Integer;
Header:PWaveHdr;
Buffer:PChar;
begin
if Active then
begin
for index:=0 to 2 do
begin
new(Buffer);
Getmem(Buffer,cSize);
new(Header);
Header.lpData:=Buffer;
Header.dwBufferLength:=cSize;
Header.dwBytesRecorded:=0;
Header.dwUser:=0;
Header.dwFlags:=0;
Header.dwLoops:=0;
Header.lpNext:=nil;
Header.reserved:=0;
WaveInPrepareHeader(WaveIn,Header,SizeOf(TWaveHdr));
WaveInAddBuffer(WaveIn,Header,SizeOf(TWaveHdr))
end;
WaveInStart(WaveIn);
end;
end;

procedure TRecorder.StopRec;
begin
WaveInStop(WaveIn);
end;

procedure TRecorder.WndProc(var Message:TMessage);
var
Header:PWaveHdr;
Data:PChar;
BytesRec:Integer;
begin
case Message.Msg of
WIM_OPEN:begin
Active:=true;
StartRec;
end;
WIM_CLOSE:
begin
Active:=False;
end;
WIM_DATA:
begin
Header:=PWaveHdr(Message.LParam);
if Active then
begin
WaveInUnPrepareHeader(WaveIn,Header,SizeOf(TWaveHdr));
if Assigned(FOnData) then
begin
BytesRec:=Header.dwBytesRecorded;
new(Data);
GetMem(Data,BytesRec);
Move(Header.lpData^,Data^,BytesRec);
FOnData(Data,BytesRec);
FreeMem(Data);
end;
Header.dwBytesRecorded:=0;
Header.dwUser:=0;
Header.dwFlags:=0;
Header.dwLoops:=0;
Header.lpNext:=nil;
Header.reserved:=0;
WaveInPrepareHeader(WaveIn,Header,SizeOf(TWaveHdr));
WaveInAddBuffer(WaveIn,Header,SizeOf(TWaveHdr));
end;
end;
else
Message.Result:=DefWindowProc(FHand,Message.Msg,Message.WParam,Message.LParam);
end;
end;

Data содержит записанные данные в соответствии с указаными параметрами буфера. Делаешь с данными всё что хочешь и читаешь следующий блок и т.д.
Без MSDN тут сложно что-либо понять...



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.047 c
15-1160751654
oldman
2006-10-13 19:00
2006.11.05
Возвращаясь к теме ХР...


15-1160636081
ANB
2006-10-12 10:54
2006.11.05
Исправить орфографические ошибки


2-1161511352
sss1
2006-10-22 14:02
2006.11.05
ShellExecute


15-1160414992
Kolan
2006-10-09 21:29
2006.11.05
А что это mail.ru падать вздумал?


15-1161139835
Slider007
2006-10-18 06:50
2006.11.05
С днем рождения ! 18 октября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский