На форме присутствуют к примеру две кнопки. Хочется добиться того, чтобы при нажатии на btn1 вопроизводился звук, соответственно при нажатии на btn2 воспроизводился другой звук (wave file). ПРобовал делать я через "aplay", "play" и "mplayer". В итоге получалось следующее: Нажимаю btn1, воспроизводится звук и происходит зарержка - кнопка в стостоянии нажатия до тех пор, пока файл не проиграется полностью, и в это время невозможно нажать вторую кнопку.
Подскажите пожалуйста, как этого избежать?
Воспроизведение звуков
Модератор: Модераторы
- Nik
- энтузиаст
- Сообщения: 573
- Зарегистрирован: 03.02.2006 23:08:09
- Откуда: Киров
- Контактная информация:
Re: Воспроизведение звуков
Как вариант - функции воспроизведения запускать в разных потоках. Или воспользоваться библиотекой типа BASS - там такие проблемы обычно не возникают.
Re: Воспроизведение звуков
В виндовсе есть комманда start, работает без багов
В линуксе аналог комманды выглядит так
Кроме того, тебе нужно будет засекать время начала воспроизведения и игнорировать события нажатия "музыкальной клавиши" время_необходимое_на_воспроизведение + ~100мс.
Код: Выделить всё
start mplayer opr02OBE.flvВ линуксе аналог комманды выглядит так
Код: Выделить всё
nohup mplayer opr02OBE.flv &Кроме того, тебе нужно будет засекать время начала воспроизведения и игнорировать события нажатия "музыкальной клавиши" время_необходимое_на_воспроизведение + ~100мс.
Re: Воспроизведение звуков
Оо, большое спасибо))
Re: Воспроизведение звуков
А если запуск происходит через TProcess, можно просто убрать у него флаг poWaitOnExit
Код: Выделить всё
AProcess.Options := AProcess.Options - [poWaitOnExit];