Я когда-то использовал такой код (файл sound/sound.py):
import pygame, sys
def play(song):
pygame.mixer.music.load(song)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
pos = pygame.mixer.music.get_pos()/ 1000
if __name__=='__main__':
if len(sys.argv) > 1:
song = sys.argv[1]
else:
song = 'file.mp3'
pygame.mixer.init(22050, -16, 2, 2048)
pygame.mixer.music.set_volume(2.0)
play(song)
pygame.quit()
Вызывал из другого скрипта (файл play_song.py):
def run(song):
import os, sys
pypath = sys.executable
os.spawnv(os.P_DETACH, pypath, ('python', 'sound/sound.py', song))
if __name__=='__main__':
song = 'sound/file.mp3'
run(song)
Запуск одной строчкой с третьего скрипта:
import play_song
play_song.run('sound/first-file.mp3')
Воспроизводит mp3 без окна, в виде отдельного процесса.