Alk*_*yst 4 python audio pygame
在pygame中有一种方法可以判断声音是否已经播放完毕?我阅读set_endevent和get_endevent文档,但我无法理解或找到一个例子.
我正在尝试专门执行以下操作:
我确实检查了其他问题 - 没有找到任何专门针对python/pygame的问题.
谢谢!
诀窍是,pygame.mixer.Channel当你调用play()sound(pygame.mixer.Sound)的方法时,你会得到一个类型的对象.您可以使用频道的get_busy()方法测试声音是否已完成播放.
一个简单的例子:
import pygame.mixer, pygame.time
mixer = pygame.mixer
mixer.init()
tada = mixer.Sound('tada.wav')
channel = tada.play()
while channel.get_busy():
pygame.time.wait(100) # ms
print "Playing..."
print "Finished."
Run Code Online (Sandbox Code Playgroud)
这些示例假设您有一个名为'tada.wav'的声音文件.
小智 5
您可以使用如下代码:
import pygame
pygame.mixer.music.load('your_sound_file.mid')
pygame.mixer.music.play(-1, 0.0)
while pygame.mixer.music.get_busy() == True:
continue
Run Code Online (Sandbox Code Playgroud)
并且,它不必是.mid文件。可以是pygame可以理解的任何文件类型。