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 –