Я использую пакет закусок в Linux Mint 13 (Maya), tk8.5 (желание).
Мой аудиовыход представляет собой аналоговое стерео с программным обеспечением pulseaudio.
В соответствии с этим: http://www.speech.kth.se/snack/tutorial.html все, что мне нужно сделать, чтобы воспроизвести звук снова, это снова использовать команду воспроизведения.
У меня есть звуковой объект, и он воспроизводится только один раз, независимо от того, сколько раз я вызываю команду play.
Я попытался поставить команду stop перед воспроизведением, например:
mysound stop
mysound play
Что происходит: играет на первом звонке, но не на втором, играет на третьем, но не на четвертом звонке, и так далее. Это асинхронно, что означает, что я нажимал кнопки, чтобы повторить стоп-плей. Теперь этот скрипт:
пакет требует закуски
snack::sound s
s read knock.wav
after 1000 {s play}; #play sound effect
after 5000 {s play}; #this one doesn't work
after 10000 {s play}; #this one doesn't work
after 15000 {s stop; s play}; #played
after 20000 {s stop; s play}; #not played
after 25000 {s stop; s play}; #played
То же поведение, что и при использовании событий отпускания кнопки. В Android поведение работает точно так же, как и в теории, за исключением того, что оно имеет огромные задержки в зависимости от устройства (например, звук появляется через 2 секунды на одном телефоне и через 200 мс на другом с лучшим оборудованием).
Я знаю, что теория верна, и мой последний вопрос: как я могу улучшить реализацию Linux, которая использует более надежное воспроизведение звука? Возможно, с использованием миди-звуков. Решение, которое может работать на любой машине UNIX. Обеспечивает ли закуска это?
Спасибо большое, это очень важно для меня и, думаю, для других тоже!