0

这是我的代码。

soundObj = pygame.mixer.Sound("burr.wav")
soundObj.play()
time.sleep(7) # 7 seconds for sound to play
soundObj.stop()

这个当前代码允许我只播放 7 秒的声音,即使它是 8 秒长。此外,如果声音文件是 4 秒长,它仍然会休眠 7 秒。这是一个问题。

我希望音频文件在整个持续时间内播放。不多也不少。

所以我认为有两种方法可以做到这一点。

  1. 我可以在文件播放完毕时设置某种标志。我该怎么做呢?

  2. 或者,如果我能以某种方式获得声音文件的持续时间,我可以将 time.sleep 替换为 time.sleep(duration)。这也将解决我的问题(我希望!)。

那么大家怎么看呢?

4

1 回答 1

1

get_length()将以秒为单位返回对象持续时间。

soundObj.get_length()

要知道声音是否正在播放,您应该使用Channel 对象。

voice = pygame.mixer.Channel(channel_num)
if voice.get_busy():
    # Code here ...
于 2013-09-15T12:21:03.813 回答