如何在Python中找到.wav文件的持续时间?或者如何在文件停止播放时设置标记?

时间:2013-09-15 12:12:20

标签: python audio duration

这是我的代码。

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(duration)替换time.sleep。那也可以解决我的问题(我希望!)。

  3. 那你觉得伙计们怎么样?

1 个答案:

答案 0 :(得分:1)

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

soundObj.get_length()

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

voice = pygame.mixer.Channel(channel_num)
if voice.get_busy():
    # Code here ...