Możesz korzystać z wielu zewnętrznych odtwarzaczy przez rury. Jednak prawie zawsze doświadczasz utraty prędkości. Występuje również problem z kontrolą odtwarzania.
Polecam wam pyaudio, działa dobrze.
Jeśli chcesz również odtwarzać pliki skompresowane, będę mógł swobodnie wskazać Ci mój moduł decoder.py. Możesz go znaleźć na PyPI.
Wykorzystuje również podproces, ale zamiast odtwarzaczy wywołuje dekodery. Nie używają dużo procesora, a niektórzy wiedzą, jak korzystać z akceleracji sprzętowej. Następnie możesz użyć pyaudio lub czegoś innego, aby wyprowadzić surowe dane audio. Jeśli chcesz, możesz nawet użyć pygame, używając pygame.sndarray. W ten sposób możesz odtwarzać więcej formatów niż obsługuje pygame.
Próbowałem decoder.py w środowisku PyQT GUI, z pyaudio, a także używając aplay jako zewnętrznego odtwarzacza. To było na Raspberry Pi B.
Wyniki były w obu przypadkach całkiem satysfakcjonujące.
Prostota może być kwestionowana.
decoder.py sam w sobie jest bardzo prosty, ale musisz go połączyć z innymi bibliotekami lib, co zwiększa linie kodu.
Istnieje przykład odtwarzania plików zawartych w pliku decoder.py.