Форум: "Система";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
ВнизКак извлечь писк из динамика? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c