这是我的代码。
soundObj = pygame.mixer.Sound("burr.wav")
soundObj.play()
time.sleep(7) # 7 seconds for sound to play
soundObj.stop()
这个当前代码允许我播放声音仅7秒,即使它是8秒长。此外,如果声音文件是4秒长,它仍然会睡7秒。这是一个问题。
我希望音频文件能够在整个持续时间内播放。不多也不少。
所以我认为有两种方法可以做到这一点。
我可以在文件播放完毕时设置某种标志。我该怎么做?
或者,如果我能以某种方式获得声音文件的持续时间,我可以用time.sleep(duration)替换time.sleep。那也可以解决我的问题(我希望!)。
那你觉得伙计们怎么样?
答案 0 :(得分:1)
get_length()
将以秒为单位返回对象持续时间。
soundObj.get_length()
要知道是否正在播放声音,您应该使用Channel对象。
voice = pygame.mixer.Channel(channel_num)
if voice.get_busy():
# Code here ...