![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
![]()
Здравствуйте. Задача состоит вот в чем: когда нажимаю на клавишу клавиатуры (определенную заранее), воспроизводится звук wav средствами bass.dll. Если нажать и удерживать клавишу, то будет воспроизводиться звук до тех пор, пока не отпущу клавишу. Подскажите, как сделать так, чтобы когда я нажал и удерживал клавишу звук воспроизводился только один раз?
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
playsound с соответствующим флагом и никаких bass
![]()
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
![]()
с каким именно?я попробовал флаг пург, на первый взгляд это оно. но:
1. все равно воспроизводится звук много раз при удержании клавиши, но с большой задержкой 2.программа не реагирует на нажатия других клавиш пока плейсаунд не проиграет звук столько раз, сколько мы наудерживали клавишу. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
не реагирует на нажатия, потому-что snd_async нужно добавить... а чего вы хотите добится в конечном итоге, я не про вопрос, а про цель работы
![]()
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#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. с асинком будет воспроизводиться постоянно при удержании. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
![]()
или может в комбинации с другим флагом? цель работы добиться такого результата
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
мда... sND_async - возвращает управление программе, асинхронное воспроизведение.
...вы слышали, что такое триггер? и понимаете-ли, что происходит когда вы удерживаете постоянно клавишу? по keydown выставляете флаг в true и воспроизводите звук, по keyup разрешаете, вот вам пример одиночного срабатывания: Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 14.05.2010
Сообщений: 12
|
![]()
что такое тригер я знаю.идею понял.пробую
|
![]() |
![]() |
![]() |
#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 |