Но звук будет проигран не в фоновом режиме. Обычно воспроизведение звука занимает 5-10 секунд, что останавливает основную работу скрипта. Можно ли как-то проиграть данную команду в фоновом режиме. Либо как-то запустить проигрыватель VLC.exe для проигрывания звука в фоновом режиме?
Но хотелось бы также что бы можно было остановить звук. То получается могут проигрываться два параллельны звука.
Добавил:
Код
-- /i Передает начальные установки среды интерпретатора Cmd.exe в новое окно командной строки.
-- /min Запускает новое окно командной строки в свернутом виде.
-- /b Запускает приложение без открытия нового окна командной строки. Обработка комбинации клавиш CTRL+C не производится, пока приложение не разрешит обработку CTRL+C. Для прерывания приложения следует использовать CTRL+BREAK.
Вот держите. Положить луа и длл в одну папку с вашим скриптом, включить файл qPlaySound через require, вызывать функцию qPlaySound(filename). Пример
Код
require "qPlaySound"
local run = true
function main()
while run do
sleep(3000)
qPlaySound("c:\\windows\\media\\tada.wav")
end
end
function OnStop()
run = false
end
Всегда забавляет, когда люди внимательно изучают сорцы на гитхабе, а потом скачивают готовый бинарник с какого-то левого сайта. Почему они считают, что бинарник собран именно из тех сорцев, что им показали, для меня загадка. Впечатляющий прорыв творческой мысли, не правда ли?
Да это забавно - согласен. Речь была не про это - а про то, что бы посмотреть. У меня он так и не запустился. Единственная библиотека которую я смог запустить для звуков это w32.dll.
Так а версию квика-то назовите, может у вас вообще седьмая какая-нибудь. Скрипт qPlaySound.lua должен лежать рядом с вашим скриптом и рядом же должна лежать qPlaySound.dll.
Что-то не так разложили. Рядом с вашим скриптом должны лежать qPlaySound.lua (из первого варианта) и qPlaySound.dll, ваш скрипт должен require("qPlaySound"). Вот для удобства все содержимое тестовой папки (ага, спецом поставил седьмой квик и проверил). Распакуйте архив, перенесите папку lua целиком в папку квика, в квике добавьте и запустите qplay.lua. Должен квакать раз в две секунды. Если все ок, qplay.lua можно выкинуть и дальше пользоваться как хочется.
Всё подробно написано как устанавливать. Надеюсь, у вас не 8.5 версия (где Lua версию изменили)
Да эту библиотеку видел w32. Но пока решил отказаться от звуков для кнопочек, т.к. опять проблема совместимости начинается в 8. Решил оставить только звуки для важных событий - а на них не вижу страшным что экран будет черный показываться и скрываться по крайней мере на данном этапе работ.
Всё подробно написано как устанавливать. Надеюсь, у вас не 8.5 версия (где Lua версию изменили)
Пока решил остаться на Quik 7 - поэтому библиотека w32.dll оказалась очень кстати. Единственный нюакнс который заметил - как полагаю на время запуска звука приостанавливает работу скрипта. Может ошибаюсь - но все же это доли секунд.
Иван написал: Единственный нюакнс который заметил - как полагаю на время запуска звука приостанавливает работу скрипта. Может ошибаюсь - но все же это доли секунд.
Проигрывать файлы - затратно. Даже если само проигрывание идет асинхронно, надо до возврата из функции загрузить указанный файл (чтобы знать случилось ли это успешно), проинициализировать звуковую карту и разные прочие накладные расходы. На это время, понятно, всё приостанавливается.