Главная страница
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.016 c
8-55234
dmitriyk
2002-01-31 03:22
2002.06.17
Как качественно перевести цветную картинку в черно-белую


14-55307
Malder
2002-05-15 17:02
2002.06.17
Ответ на задачку


7-55323
Александп
2002-03-19 17:54
2002.06.17
Как в WinNt запустить Socket Server, чтобы он работал при стартовом окошке (нажмите Ctrl+Alt+Del)


1-55177
mazepa
2002-06-03 19:11
2002.06.17
массив 50М


1-55157
limon
2002-06-04 11:08
2002.06.17
Кредитные карточки