如何使用Pyglet在Mayavi动画中播放声音



我想在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

相关内容

  • 没有找到相关文章

最新更新