Python Pyglet在被多次呼叫后停止播放声音
我有大量的小mp3文件需要单独检查。在python foreach文件循环中,我调用这个使用pyglet的函数:Python Pyglet在被多次呼叫后停止播放声音,python,macos,audio,mp3,pyglet,Python,Macos,Audio,Mp3,Pyglet,我有大量的小mp3文件需要单独检查。在python foreach文件循环中,我调用这个使用pyglet的函数: def play(player,src): try: #music = pyglet.resource.media(src) music = pyglet.media.load(src, streaming=False) music.play() ans = raw_input("\tWas this sound good (r to replay
def play(player,src):
try:
#music = pyglet.resource.media(src)
music = pyglet.media.load(src, streaming=False)
music.play()
ans = raw_input("\tWas this sound good (r to replay, q to quit)? [y|n|r|q]: ")
if (ans == 'r'):
return play(player,src)
if (ans == 'q'):
sys.exit(0)
else:
success = (ans == 'y')
except pyglet.media.avbin.AVbinException, e:
print "Exception playing file. Assuming bad."
success = 0
print "%s -> %d" % ( src, success )
return success
它对大约10个文件非常有效,但随后它就停止了静默工作。它的行为就像是在播放声音,但只有沉默。是否有一些资源我应该卸载或释放或什么?我在OSX上,最初必须安装AVBin才能让pyglet工作
谢谢 欢迎来到SO
首先,你应该看看这个特性,它提供了大量的automagic来停止和释放资源以方便你
第二,如果你有任何错误,请分享
大致如下:
player = pyglet.media.Player()
player.queue(source1)
player.queue(source2)
player.play()
# wait 5 sec...
player.next()
如果您更喜欢在每次播放之间以手动方式进行,应该会有所帮助
player.stop()
player.clear()