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

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

Speaker don t


voodoo_alex ©   (2002-06-11 12:55:00) 

Народ вот пишу
Beep;
но спикер не пикает ;((( Подскажите как его проще всего заставить пикать то.... к 60-му порту то доступ мне винда не отдаст напрямую ;((((

Спасибо заранее.


Wizard_Ex   (2002-06-19 16:34:00) [1]

гарантированно работает под W95, W98, NT, XP, 2000 И тому подобными ОСами


Wizard_Ex   (2002-06-19 16:32:00) [2]

Попробуй это:
Delay - пауза
MyBeep пикание частота, длительность
Call - примерчик,

procedure Delay(msecs : Longint);
var
FirstTick:Longint;
begin
FirstTick:=GetTickCount;
repeat
Application.ProcessMessages;
{для того чтобы не "завесить" Windows}
until GetTickCount - FirstTick >= msecs;
end;

function IsNT : boolean;
begin
case Win32Platform of
VER_PLATFORM_WIN32_NT: Result:=True;
else Result:=False;
end;
end;
procedure myBeep(Freq, Duration: Integer);
begin
if IsNT then begin windows.Beep(Freq, Duration); exit end;
// ;---рарешение канала 2 установкой порта B
asm
IN AL, 61h //чтение его значения
OR AL,3 //установка двух младших битов
OUT 61h, AL //посылаем байт в порт B
//;---установка регистров ввода/вывода
MOV AL, 182 // для канала 2
OUT 43h, AL //засылка в командный регистр
//---засылка счетчика в задвижку
sub edx, edx
mov eax, 1190000
xor ecx, ecx //очистка от "мусора"
mov ecx, Freq
div ecx //счетчик = 1190000/Freq
OUT 42h, AL //посылаем младший байт
MOV AL, AH //сдвигаем младший байт в AL
OUT 42h, AL //посылаем старший байт
end;
Delay(Duration);
asm //выключение звука
IN AL, 61h //получаем байт из порта B
AND AL, 252 //сбрасываем два младших бита
OUT 61h, AL //посылаем байт обратно
end;
end;

procedure Call;
begin
MyBeep(880,100);
Delay(10);
MyBeep(570,100);
Delay(20);
Delay(200);
MyBeep(880,100);
Delay(10);
MyBeep(570,100);
Delay(20);
end;


easy   (2002-06-17 17:27:00) [3]

...вот ещё фишка:

Как управлять спикером под 9х из Дельфи
http://www.sources.ru/delphi/system/speaker_control.shtml

для всех виндовсов...


ao1973   (2002-06-17 17:19:00) [4]

англичанин !
если решил повыпендиваться то писать надо doesn"t!


Dimka Maslov   (2002-06-17 12:00:00) [5]

http://delphibase.endimus.com/?action=viewfunc&topic=mediasound&index=1


MEgor   (2002-06-17 10:36:00) [6]

Чего вы тут гадаете.
Ну почитайте вы хелп, вы что никогда туда не заглядываете?
Для платформ WinNT Windows.Beep(5000,50) работать будет, а вот для Win9x нет.
В хелпе так и сказано, что эти параметры игнорируются.


Cobalt   (2002-06-17 09:23:00) [7]

MessageBeep( -1);


угол   (2002-06-17 08:01:00) [8]

так надо не:
MessageBeep($FFFFFFF);
а:
MessageBeep($FFFFFFF F);


Озадаченный   (2002-06-13 13:22:00) [9]

У меня этот MessageBeep($FFFFFFF); не работает, но через динамик работает Windows.Beep например: Windows.Beep(5000,50); выдается писк из динамика


mukha   (2002-06-12 11:08:00) [10]


> Song © (12.06.02 10:04)
> По-моему "стандартному звуку" фиолетово до настроек звуковых
> схем...


Мой ответ для того случая, когда "стандартный звук" воспроизводится через звуковую карту. Так как при наличии на ПК звуковой карты звук воспроизводится с помощью звуковой карты. Для этого можно использовать АРI-функцию MessageBeep, имеющую следующие идентификаторы стандартного звука: mb_IconAsterisk, mb_IconExclamation, mb_IconHand, mb_IconQuestion, mb_Ok. Например: MessageBeep(mb_Ok);
Чтобы извлечь "бип" из системного динамика, минуя звуковую карту, можно использовать АРI-функцию MessageBeep с параметром $FFFFFFFF. Например: MessageBeep($FFFFFFF);


AlexSV   (2002-06-12 10:45:00) [11]

Beep - это дельфевая функция.

Из help"a:
procedure Beep;
Description
Beep calls the Windows API MessageBeep.

MessageBeep вызывает WAV файл на soundcard, поэтому speaker и молчит.

юзай Windows.Beep

Из help"a:
The Beep function generates simple tones on the speaker


Song   (2002-06-12 10:04:00) [12]

По-моему "стандартному звуку" фиолетово до настроек звуковых схем...


mukha   (2002-06-12 09:51:00) [13]

Возможно, просто не установлена схема воспроизведения звуков. Проверь:пуск\Настройка\Панель управления\Звук\Схемы должно быть установлено "Стандартные звуки Windows" или там же для используемой схемы необходимо назначить необходимые звуки.


Song   (2002-06-11 14:18:00) [14]

Может он у тебя от мамки отключён ? :)


12345678   (2002-06-11 13:10:00) [15]

Beep - проигрывает через звуковую карту "стандартный звук"


Наверх

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