Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2010, 17:41   #1
Fluffy123
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 12
Восклицание Требование к воспроизведению звука по нажатию клавиши клавиатуры в Bass.dll

Здравствуйте. Задача состоит вот в чем: когда нажимаю на клавишу клавиатуры (определенную заранее), воспроизводится звук wav средствами bass.dll. Если нажать и удерживать клавишу, то будет воспроизводиться звук до тех пор, пока не отпущу клавишу. Подскажите, как сделать так, чтобы когда я нажал и удерживал клавишу звук воспроизводился только один раз?
Fluffy123 вне форума Ответить с цитированием
Старый 14.05.2010, 17:44   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

playsound с соответствующим флагом и никаких bass
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.05.2010, 18:06   #3
Fluffy123
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 12
По умолчанию

с каким именно?я попробовал флаг пург, на первый взгляд это оно. но:
1. все равно воспроизводится звук много раз при удержании клавиши, но с большой задержкой
2.программа не реагирует на нажатия других клавиш пока плейсаунд не проиграет звук столько раз, сколько мы наудерживали клавишу.
Fluffy123 вне форума Ответить с цитированием
Старый 14.05.2010, 19:36   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

не реагирует на нажатия, потому-что snd_async нужно добавить... а чего вы хотите добится в конечном итоге, я не про вопрос, а про цель работы
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.05.2010, 20:53   #5
Fluffy123
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 12
По умолчанию

асинк не то.попробуйте создать проект и написать

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key='f' then
PlaySound('d:\d1.wav',0,sND_async);
end;

end.


с асинком будет воспроизводиться постоянно при удержании.
Fluffy123 вне форума Ответить с цитированием
Старый 14.05.2010, 21:03   #6
Fluffy123
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 12
По умолчанию

или может в комбинации с другим флагом? цель работы добиться такого результата нигде в хелпах к басс длл не нашел такой особенности..
Fluffy123 вне форума Ответить с цитированием
Старый 14.05.2010, 22:18   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

мда... sND_async - возвращает управление программе, асинхронное воспроизведение.

...вы слышали, что такое триггер? и понимаете-ли, что происходит когда вы удерживаете постоянно клавишу? по keydown выставляете флаг в true и воспроизводите звук, по keyup разрешаете, вот вам пример одиночного срабатывания:
Код:
var flag: boolean;

wmkeydown...
begin
 if not flag then begin
  flag:= true;
  PlaySound('d:\d1.wav',0,sND_async)
 end
end;

wmkeyup...
begin
 flag:= false
end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.05.2010, 23:15   #8
Fluffy123
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 12
По умолчанию

что такое тригер я знаю.идею понял.пробую
Fluffy123 вне форума Ответить с цитированием
Старый 15.05.2010, 21:48   #9
Fluffy123
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 12
По умолчанию

Получилось,спасибо за совет. Такое решение применил относительно и функции басс длл.в принципе неважно к чему.алгоритм главное понял))
Fluffy123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов процедуры по нажатию клавиши CraftR14 Общие вопросы Delphi 13 12.05.2010 16:50
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
Запись звука в BASS Gr@nd Мультимедиа в Delphi 1 18.09.2009 18:17
Движения по нажатию клавиши ТРОЯН=) Помощь студентам 5 10.03.2009 21:11
переход курсора по нажатию клавиши matus Общие вопросы Delphi 3 22.11.2007 22:33