0
我正在用python製作一個GUI,使用cocos2d和pyglet模塊。 GUI在按下「h」時應播放聲音,並在釋放時停止播放。這裏的問題是我找不到解決方案。在搜索這個網站後,我發現這個問題 - How to play music continuously in pyglet,這個問題是我開始後無法停止聲音。在循環播放音樂,直到釋放一個密鑰。 Python
編輯:我找到了一種方法來播放聲音,直到keyrelease,但遇到了另一個問題
現在是應該播放音樂的代碼如下所示:
class Heartbeat (cocos.layer.Layer):
is_event_handler=True
def __init__ (self):
super(Heartbeat, self).__init__()
global loop, music, player
music = pyglet.media.load('long_beep.wav')
loop=pyglet.media.SourceGroup(music.audio_format, None)
player=pyglet.media.Player()
loop.queue(music)
player.queue(loop)
def on_key_press(self, key, modifiers):
if chr(key)=='h':
loop.loop=True
player.play()
def on_key_release (self, key, modifiers):
if chr(key)=="h":
loop.loop=False
此代碼第一次按下「h」鍵並保持不動時,它將工作,但在隨後的嘗試中不起作用。 Python不會引發異常,它似乎忽略了第一次發佈後發生的「h」鍵按壓。
注意:聲明 - if chr(key)=="h"
可能不是按鍵處理的最佳解決方案,但我非常喜歡使用cocos2d和pyglet模塊。
我已經嘗試了一個解決方案,在這個問題中提出 - http://stackoverflow.com/questions/27391240/how-to-play-music-continuously-in-pyglet –