import csnd6, os.path, time def is_mp3(filename): filename, file_extension = os.path.splitext(filename) return file_extension == '.mp3' class Player: def __init__(self): engine = csnd6.Csound() engine.SetOption("-odac") engine.Compile("player.csd") thread = csnd6.CsoundPerformanceThread(engine) thread.Play() self.engine = engine self.thread = thread def play_file_by_ext(self, ext, file): self.thread.InputMessage("i \"%s\" 0 -1 \"%s\"" % (ext, file)) def stop(self): self.thread.InputMessage("i \"stop\" 0 0.01") time.sleep(0.02) def play(self, file): self.stop() if is_mp3(file): self.play_file_by_ext("mp3", file) else: self.play_file_by_ext("wav", file) def close(self): self.thread.Stop() self.thread.Join()