SoundBoard (HLDJ) звуки на Numpad

Опубликуйте ваши работающие скрипты, библиотеки и ПО для AutoHotkey
User avatar
WillyFox
Posts: 6
Joined: 06 Feb 2017, 06:07
Contact:

SoundBoard (HLDJ) звуки на Numpad

05 Apr 2022, 08:53

Классика. Воспроизводит случайный *.mp3 файл из папок с соответствующим названием кнопок на NumPad.

При запуске, программа остаётся в трее, и готова к работе. Для выхода, закройте программу по иконке в трее.
Файлы могут иметь любое название, но обязаны быть формата *.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]
}

Return to “Скрипты и библиотеки”

Who is online

Users browsing this forum: No registered users and 6 guests