だから私はリズムトレーナーに取り組んでいて、UIツールキットとしてwxpythonを使用しています。キーボードの押下をバインドしてサウンドを再生する方法を誰かが知っているかどうか疑問に思いましたか?簡単に言うと、ユーザーはキーボードを使用してドラムビートを演奏できます。例「Aキーを押すとバスドラムが鳴ります」
今、私はチュートリアルに出くわしました-
http://www.blog.pythonlibrary.org/2009/08/29/wxpython-catching-key-and-char-events/
しかし、これはサウンドを正常に再生するためにボタンが必要なようです。この例を使用して機能する機能が少しあります。しかし、ボタンを使わずにそれを行う別の方法があるかどうか疑問に思いましたか?
import wx
class MyForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Key Press Tutorial")
# Add a panel so it looks the correct on all platforms
panel = wx.Panel(self, wx.ID_ANY)
btn = wx.Button(panel, label="OK")
btn.Bind(wx.EVT_KEY_DOWN, self.onKeyPress)
def onKeyPress(self, event):
keycode = event.GetKeyCode()
print keycode
if keycode == ord('A'):
print "you pressed the spacebar!"
sound_file = "notation1.wav"
sound=wx.Sound(sound_file)
print(sound_file)
sound.Play(wx.SOUND_ASYNC)
event.Skip()
# Run the program
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MyForm()
frame.Show()
app.MainLoop()
これは、チュートリアルを使用した私の例です。
乾杯!