Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

Как извлечь писк из динамика?   Найти похожие ветки 

 
L.eXX   (2002-03-20 19:20) [0]

Привет, Мастера! У меня возникла задача: надо пискнуть системным динамиком. В 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 можно подправить? :)


 
lipskiy ©   (2002-03-20 20:40) [1]

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


 
Anatoly Podgoretsky ©   (2002-03-20 22:26) [2]

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


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

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

unit Windows;

...

implementation

...

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

...


?


 
Doom ©   (2002-03-21 06:18) [4]

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


 
Dimka Maslov ©   (2002-03-21 09:48) [5]

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


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

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



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

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
14-55307
Malder
2002-05-15 17:02
2002.06.17
Ответ на задачку


14-55306
Goodman
2002-05-16 12:39
2002.06.17
tst


3-55048
Glonia Zbanov
2002-05-24 11:30
2002.06.17
Помогите разобратся с ошибкой


3-54981
Proton
2002-05-22 07:56
2002.06.17
Выборка первых 10 записей


4-55369
LeSS
2002-04-04 15:42
2002.06.17
Создать свою кнопку на