|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.05.2010, 17:41 | #1 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
Требование к воспроизведению звука по нажатию клавиши клавиатуры в Bass.dll
Здравствуйте. Задача состоит вот в чем: когда нажимаю на клавишу клавиатуры (определенную заранее), воспроизводится звук wav средствами bass.dll. Если нажать и удерживать клавишу, то будет воспроизводиться звук до тех пор, пока не отпущу клавишу. Подскажите, как сделать так, чтобы когда я нажал и удерживал клавишу звук воспроизводился только один раз?
|
14.05.2010, 17:44 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
playsound с соответствующим флагом и никаких bass
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
14.05.2010, 18:06 | #3 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
с каким именно?я попробовал флаг пург, на первый взгляд это оно. но:
1. все равно воспроизводится звук много раз при удержании клавиши, но с большой задержкой 2.программа не реагирует на нажатия других клавиш пока плейсаунд не проиграет звук столько раз, сколько мы наудерживали клавишу. |
14.05.2010, 19:36 | #4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
не реагирует на нажатия, потому-что snd_async нужно добавить... а чего вы хотите добится в конечном итоге, я не про вопрос, а про цель работы
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
14.05.2010, 20:53 | #5 |
Пользователь
Регистрация: 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. с асинком будет воспроизводиться постоянно при удержании. |
14.05.2010, 21:03 | #6 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
или может в комбинации с другим флагом? цель работы добиться такого результата нигде в хелпах к басс длл не нашел такой особенности..
|
14.05.2010, 22:18 | #7 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
мда... sND_async - возвращает управление программе, асинхронное воспроизведение.
...вы слышали, что такое триггер? и понимаете-ли, что происходит когда вы удерживаете постоянно клавишу? по keydown выставляете флаг в true и воспроизводите звук, по keyup разрешаете, вот вам пример одиночного срабатывания: Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
14.05.2010, 23:15 | #8 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
что такое тригер я знаю.идею понял.пробую
|
15.05.2010, 21:48 | #9 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
Получилось,спасибо за совет. Такое решение применил относительно и функции басс длл.в принципе неважно к чему.алгоритм главное понял))
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызов процедуры по нажатию клавиши | 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 |