când am început să joc cu Hammerspoon, am răsfoit întreaga sa API pentru a vedea ce lucruri aș putea face cu ea. Ochii mei au căzut pe categoria hs.sound
și am știut în acel moment că trebuie să construiesc o placă de sunet. Odată ce mi-am setat hiper-cheia și mai multe legături cheie foarte utile, m-am dus la muncă.
nu după mult timp, am putut finaliza jocul de cuvinte al unui coleg cu un sunet „BA-DUM-TISS” la apăsarea unui buton. Sau încheiați o întâlnire cu Peonul lui Warcraft spunând „munca de lucru”. Favoritele mele personale au fost o piesă de „muzică de lift” complet arbitrară și introducerea „Driving home for Christmas”.
Configurarea
crede-mă când spun, codul nu este partea cea mai grea. Partea grea este găsirea unor fragmente audio bune de utilizat. Dacă sunteți în căutarea inspirației, aruncați o privire pe site-ul My Instants. Au o colecție strălucitoare de mici fragmente de sunet din diverse filme, melodii și chiar jocuri.
după ce ați colectat unele sunete, puteți începe construirea placa de sunet cu Hammerspoon. Pentru a menține lucrurile ușor de gestionat, mapările dintre taste și fișierele de sunet sunt stocate într-un tabel. Acest tabel este apoi citit de o funcție, legarea fișierului de sunet la tasta specificată. Iată o parte din configurarea mea:
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
tabelul din fișierul meu conține intrări pentru aproape toate cheile, dar cea mai mare parte a acestora au fost omise aici, deoarece ideea este ilustrată suficient de bine în acest eșantion. Bucla for de sub ea (unde scrie -- Initialise Soundboard!
) se învârte peste acest tabel și leagă tasta specificată de o funcție care redă sunetul dat. Asigurați-vă că fie puneți sunetele în calea specificată (~/.hammerspoon-assets/soundboard/
), fie ajustați calea în consecință.