kapcsolja be a billentyűzetet egy Soundboard

vissza, amikor elkezdtem játszani Hammerspoon, böngésztem a teljes API, hogy milyen dolgokat tudok csinálni vele. A szemem a hs.sound kategóriára esett, és abban a pillanatban tudtam, hogy soundboardot kell építenem. Miután beállítottam a Hyper-key-t és néhány igazán hasznos kulcskötést, elmentem dolgozni.

nem sokkal később egy gombnyomással egy “BA-DUM-TISS” hanggal tudtam befejezni egy munkatárs szójátékát. Vagy fejezzen be egy találkozót a Warcraft Peonjával, mondván:”munka munka”. Személyes kedvenceim a teljesen önkényes “lift zene” darabja és a “karácsonyra hazafelé”bevezetése voltak.

a Beállítás

bízz bennem, amikor azt mondom, a kód nem a nehéz rész. A kemény rész a jó hangfragmensek megtalálása. Ha inspirációt keres, nézze meg a My Instants webhelyet. Van egy ragyogó gyűjteménye kis hangrészletek különböző filmek, dalok, sőt játékok.

miután összegyűjtött néhány hangot, elkezdheti a soundboard építését a Hammerspoon segítségével. Annak érdekében, hogy a dolgok kezelhetők legyenek, a kulcsok és a hangfájlok közötti leképezések egy táblázatban vannak tárolva. Ezt a táblázatot ezután egy függvény olvassa el, amely a hangfájlt a megadott kulcshoz köti. Itt van egy része a beállításomnak:

local soundBoard = {
badumtiss = { key = '1', file = 'badumtiss.mp3' },
metalgearsolid = { key = '2', file = 'metalgearsolid.mp3' },
winError = { key = '3', file = 'windows-error.mp3' },
sadtrombone = { key = '4', file = 'sadtrombone.mp3' },
crickets = { key = '5', file = 'crickets.mp3' },
batman = { key = '6', file = 'batman-transition.mp3' },
shocked = { key = '7', file = 'shocked.mp3' },
inception = { key = '8', file = 'inceptionbutton.mp3' },
haGay = { key = '9', file = 'ha-gay.mp3' },
workwork = { key = '0', file = 'wc-work-work.mp3' },
workComplete = { key = '-', file = 'wc-work-complete.mp3' },
ns = { key = '=', file = 'ns-ding-dong.mp3' },
-- ... many more here
}-- Initialise Soundboard!
for n,s in pairs(soundBoard) do
-- Change the path here to where your sound files are stored:
s.sound = hs.sound.getByFile(os.getenv("HOME") .. '/.hammerspoon-assets/soundboard/' .. s.file) -- Bind to Hyper+Cmd+s.key
hyper.bindKeyWithModifiers(s.key, {'cmd'}, function()
s.sound:stop()
s.sound:play()
end)
end

a fájlomban található táblázat szinte az összes kulcs bejegyzését tartalmazza, de ezek nagy részét itt kihagyták, mert az ötletet elég jól szemlélteti ez a minta. Az alatta lévő for-loop (ahol -- Initialise Soundboard! – et mond) végighurkolja ezt a táblát, és a megadott billentyűt egy függvényhez köti, amely lejátssza az adott hangot. Győződjön meg róla, hogy a hangokat a megadott elérési útra helyezte (~/.hammerspoon-assets/soundboard/), vagy ennek megfelelően állítsa be az elérési utat.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.