我想在Mayavi动画循环中使用pyglet
播放声音,但是我发现pyglet
与'yarts'的效果不佳,必须在mayavi动画中使用。情况是,当声音播放和动画完成一次时,它只是无法启动新循环,这是我的一些代码,任何想法?
pyglet
可以在循环中播放声音,但不能使用yield
。
@mlab.animate(delay=delays)
def animate():
f = mlab.gcf()
while True:
for i in range(frames_num):
# update sound
sound = 'shiping/shiping_%d.wav'%i
sound_adjust = pyglet.resource.media(sound, streaming=False)
sound_adjust.play()
# update scene
print('Update scene >>', time.time())
function_to_update_scene()
# with out 'yield' it works well
yield
animate()
任何其他模块也建议也可以接受。问题是我需要在20ms内快速更新声音。
i终于使用winsound
模块解决了此问题。使用
winsound.PlaySound(sound, winsound.SND_FILENAME | winsound.SND_ASYNC)
更换
sound_adjust = pyglet.resource.media(sound, streaming=False)
sound_adjust.play()
播放定义的声音异步。当然,您必须从一开始就必须import winsound
。