Python Pyglet在无限循环中播放音频

Python Pyglet在无限循环中播放音频,python,python-3.x,audio,pyglet,pynput,Python,Python 3.x,Audio,Pyglet,Pynput,我正在制作一个小脚本,当你们按下键盘上的一个键时,它会播放音频文件。现在,在切换了多个库之后,我登陆了pyglet+pynput组合。脚本工作正常,但是音频以无限循环播放,这是不需要的,并且音频被堆叠起来。我找不到关于这个的任何东西,有什么想法吗 *已安装ffmpeg 这是代码 导入字符串,随机,pyglet 从pynput.keyboard导入键,侦听器 选项['search_local_libs']=True 说明键=['Key.caps\u lock'、'Key.shift'、'Key.d

我正在制作一个小脚本,当你们按下键盘上的一个键时,它会播放音频文件。现在,在切换了多个库之后,我登陆了pyglet+pynput组合。脚本工作正常,但是音频以无限循环播放,这是不需要的,并且音频被堆叠起来。我找不到关于这个的任何东西,有什么想法吗

*已安装ffmpeg

这是代码

导入字符串,随机,pyglet
从pynput.keyboard导入键,侦听器
选项['search_local_libs']=True
说明键=['Key.caps\u lock'、'Key.shift'、'Key.delete'、'Key.backspace'、'Key.enter'、'Key.up'、'Key.left'、'Key.down'、'Key.right']
caps=['Key.caps\u lock','Key.shift']
delete=['Key.delete','Key.backspace']
move=['Key.up'、'Key.left'、'Key.down'、'Key.right']
ks1=pyglet.media.load('key-press-1.mp3',streaming=False)
ks2=pyglet.media.load('key-press-2.mp3',streaming=False)
ks3=pyglet.media.load('key-press-3.mp3',streaming=False)
ks4=pyglet.media.load('key-press-4.mp3',streaming=False)
ks_列表=[ks1、ks2、ks3、ks4]
k_caps=pyglet.media.load('key-caps.mp3',streaming=False)
k_conf=pyglet.media.load('key-confirm.mp3',streaming=False)
k_del=pyglet.media.load('key-delete.mp3',streaming=False)
k_move=pyglet.media.load('key-movement.mp3',streaming=False)
def on_按(键):
x=str(键)
x=x.strip(“”)
如果x不在规格参数中:
ks_声音=随机选择(ks_列表)
音乐之声
以大写字母表示的elif x:
k_caps.play()
删除中的elif x:
k_del.play()
移动中的elif x:
k_move.play()
elif x=='键。输入':
k_形态播放()
将侦听器(on_press=on_press)作为侦听器:
listener.join()
pyglet.app.run()文件
使用OpenAL解决了这个问题

pyglet.options['audio'] = ('openal', 'pulse', 'directsound', 'silent')