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

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

Как извлечь писк ;из динамика? [D5, Win95/98]


L.eXX ©   (2002-03-20 19:20:00) 

Привет, Мастера! У меня возникла задача: надо пискнуть системным динамиком. В help"е нашёл только MessageBeep(0). Но это не подходит, надо бы звук с заданной частотой и продолжительностью (например 1800Hz и 80ms). Я нашёл у себя чей-то примерчик, там написана такая процедура с асмом:

procedure SpeakerBeep(Frequency: Word; Duration: Integer);
begin
asm
mov al,0b6H
out 43H,al
mov ax,Frequency
out 42h,al
ror ax,8
out 42h,al
in al,61H
or al,03H
out 61H,al
end;
Sleep(Duration);
asm
in al,61H
and al,0fcH
out 61H,al
end;
end;


Однако это почему-то не совсем правильно с частотой работает: SpeakerBeep(200,100)даёт высокий звук, а SpeakerBeep(2000,100)- низкий. А должно быть ведь наоборот! :(

Может быть у Мастеров есть аналогичная процедура для динамика, или может чего в SpeakerBeepможно подправить? :)


L.eXX   (2002-03-21 13:51:00) [1]

Всем большое спасибо за ответы! :)


Dimka Maslov   (2002-03-21 09:48:00) [2]

http://dims.gpsm.ru/files/index_en.php?page=dim/system.htm&ref=Sound


Doom   (2002-03-21 06:18:00) [3]

посмотрите в компонентах на этом сайте DirectPort v3.0
найдете там это и многое другое.


L.eXX   (2002-03-20 23:13:00) [4]

а может это из-за "особенности реализации" юнита Windows? :)

unit Windows;

...

implementation

...

function Beep(dwFreq, dwDuration: DWORD): BOOL; stdcall;
{$EXTERNALSYM Beep}

...


?


Anatoly Podgoretsky   (2002-03-20 22:26:00) [5]

Не пойдет, x,y в Win95/98 игнорируются


lipskiy   (2002-03-20 20:40:00) [6]

Windows.beep(x,y)
что-то частота, что-то длительность в миллисекундах.


Наверх

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