Предполагая, что файлы находятся в одном и том же каталоге, я могу предположить, что когда функция импортируется в другой файл, она может столкнуться с проблемами пути и, следовательно, может не воспроизводить файл.
Я также немного сбит с толку, что ваш путь называется "xy.mp3"
. Вы можете попробовать указать абсолютный путь, например,
Измените определение вашей функции на следующее и попробуйте вызвать его с file_B.py
def play():
# play the sound
print("play", target + ".mp3")
mixer.music.load("c:/programs/mygame/music/8bit-jingle-twist.mp3")
mixer.music.play()
Также рассмотрите возможность добавления этой строки pygame.mixer.music.stop()
в функция воспроизведения, позволяющая убедиться, что используемый канал musi c правильно терминирован до получения следующего экземпляра воспроизведения.