def make_player(canvas, engine="gstreamer"): def stop(player): player.file = "" def play(player, media): stop(player) player.file = join_path(DATA_DIR, media) player.play = True def replay(player): fname = player.file stop(player) play(player, fname) sfx_player = Emotion(canvas, module_filename=engine) bgm_player = Emotion(canvas, module_filename=engine) bgm_player.on_playback_finished_add(replay) add_hook('play:sfx', play, sfx_player) add_hook('game:end', stop, sfx_player) add_hook('play:bgm', play, bgm_player) add_hook('game:over', stop, bgm_player) add_hook('game:end', stop, bgm_player)