Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог паскального Sound [D5, D6, D7, Win2k, WinXP]


Dimmu ©   (2003-12-15 10:52:00) 

Как воспроизвести звук определенной частоты, через встроенный динамик? В паскале есть кажется Sound с частотой в качестве параметра. Нужно подобное из дельфи.


Mihey   (2003-12-15 14:34:00) [1]

Гм, параметры Beep работают только в NT. В остальных Windows может издаваться только коротенький beep. Нормальные бипалки ищем на Торри:

http://www.torry.net/pcspeaker.htm


Anatoly Podgoretsky   (2003-12-15 12:23:00) [2]

А просто Beep(5000,10000) не пикает, тогда нет динамика в компьютере.


Dimmu   (2003-12-15 12:14:00) [3]


> alex_***

Спасибо, нашел я это в хелпе и написал такой код?

var h:THandle; w:Integer; pr:function(a,b:DWord):DWord;
begin
 h:=0;
 h:=LoadLibrary('kernel32.dll');
 if h>0 then
  begin
   pr:=nil;
   @pr:=GetProcAddress(h,'Beep');
   if @pr<>nil then
   w:=pr(5000,10000);
   ShowMessageFMT('%d',[w]);
  end;
end;


Но функция возвращает ноль и ессно ничего не пикает.


Ruslan Solovyev   (2003-12-15 11:26:00) [4]

Ops, мое сообщение можно игнорировать


Ruslan Solovyev   (2003-12-15 11:25:00) [5]

Мне такие функции не известны, может меня поправят.

В свое время я делал эмулятор Морзе используя waveOutXXXXX функции (Windows API): открываешь устройство и генеришь буфер в памяти (синусоиду), а затем проигрываешь.

Это коротко.


alex_***   (2003-12-15 11:22:00) [6]

WinAPI:
BOOL Beep(
   DWORD dwFreq, // sound frequency, in hertz
   DWORD dwDuration  // sound duration, in milliseconds
  );


Наверх

Титульная страница Поиск, карта сайта Написать письмо