[英]how to use pyglet to play sound in a mayavi animation?
我想在 Mayavi 动画循环中使用pyglet
播放声音,但我发现pyglet
与必须在 Mayavi 动画中使用的“yield”配合得不好。 情况是,当播放声音和动画完成一次时,它无法开始新的循环,这是我的一些代码,有什么想法吗?
pyglet
可以在 for 循环中播放声音,但不能使用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()
也可以接受任何其他模块建议。 问题是我需要在 20 毫秒内快速更新声音。
我终于通过使用winsound
模块解决了这个问题。 使用
winsound.PlaySound(sound, winsound.SND_FILENAME | winsound.SND_ASYNC)
取代
sound_adjust = pyglet.resource.media(sound, streaming=False)
sound_adjust.play()
异步播放定义的声音。 当然,您必须在一开始就import winsound
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.