При запуске, программа остаётся в трее, и готова к работе. Для выхода, закройте программу по иконке в трее.
Файлы могут иметь любое название, но обязаны быть формата *.mp3
Задействуется вся цифровая клавиатура, кроме NumLock. Если звук не играет, убедитесь, что NumLock включен.
Файлы открываются при помощи плеера по умолчанию, который настроен для открытия файла mp3 в системе (двойным кликом).
Кнопка деления ("/" NumDiv) принудительно останавливает воспроизведение звука.
Алгоритм программы не даёт воспроизвестись повторно одному и тому же звуку, если в папке его больше одного. Например, если в папке 2 файла, то они будут чередоваться, и никогда не воспроизведутся дважды, а если в папке 1 файл - он будет играть снова.
Если вы хотите воспроизводить звуки в играх, вам потребуется воспроизводить их в канал аудиовхода в настройках вашего аудиоплеера.
Для этого вам поможет программа Virtual Audio Cable.
Названия папок, которые используются для клавиш (создайте их рядом со скриптом):
Numpad0
Numpad1
...
Numpad9
NumpadAdd
NumpadDot
NumpadEnter
NumpadMult
NumpadSub
.ahk скрипт или его скомпилированная версия должна находиться рядом с папками, в которые вы помещаете свои *.mp3
Code: Select all
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
LastPlayed = 0
*NumpadDiv::Media_Stop
*Numpad0::
LastPlayed := SoundScan("Numpad0", LastPlayed)
Return
*Numpad1::
LastPlayed := SoundScan("Numpad1", LastPlayed)
Return
*Numpad2::
LastPlayed := SoundScan("Numpad2", LastPlayed)
Return
*Numpad3::
LastPlayed := SoundScan("Numpad3", LastPlayed)
Return
*Numpad4::
LastPlayed := SoundScan("Numpad4", LastPlayed)
Return
*Numpad5::
LastPlayed := SoundScan("Numpad5", LastPlayed)
Return
*Numpad6::
LastPlayed := SoundScan("Numpad6", LastPlayed)
Return
*Numpad7::
LastPlayed := SoundScan("Numpad7", LastPlayed)
Return
*Numpad8::
LastPlayed := SoundScan("Numpad8", LastPlayed)
Return
*Numpad9::
LastPlayed := SoundScan("Numpad9", LastPlayed)
Return
*NumpadAdd::
LastPlayed := SoundScan("NumpadAdd", LastPlayed)
Return
;NumpadDiv::
;LastPlayed = SoundScan("NumpadDiv", LastPlayed) ;Disabled due to binding SoundStop
;Return
*NumpadDot::
LastPlayed := SoundScan("NumpadDot", LastPlayed)
Return
*NumpadEnter::
LastPlayed := SoundScan("NumpadEnter", LastPlayed)
Return
*NumpadMult::
LastPlayed := SoundScan("NumpadMult", LastPlayed)
Return
*NumpadSub::
LastPlayed := SoundScan("NumpadSub", LastPlayed)
Return
SoundScan(FolderName, LastPlayed)
{
Array := []
FilesCount = 0
Loop, %A_ScriptDir%\%FolderName%\*.mp3
{
Array.Push(A_LoopFileFullPath)
FilesCount += 1
}
Random, Play, 1, %FilesCount%
While (LastPlayed = Array[Play] AND FilesCount > 1) ;Repeat prevention, also checks if there's more than just one file.
{
Random, Play, 1, %FilesCount%
}
Run, % Array[Play]
If (FilesCount = 0) ;SoundBeep if no mp3 files found
{
SoundBeep
}
Return Array[Play]
}