Python: Wyślij polecenie do mplayera w trybie slave

Próbuję wysłać komendę za pomocą potoku do mplayera podczas uruchamiania go w trybie slave w następujący sposób:

import subprocess, time
# start mplayer
song = 'mysong.mp3'
cmd = ['mplayer', '-slave', '-quiet', song]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE)

# send a command every 3 seconds.
# Full command reference here: http://www.mplayerhq.hu/DOCS/tech/slave.txt 
while True:
    print('sleep 3 seconds ...')
    time.sleep(3)
    cmd = 'get_meta_artist'
    print('send command: {}'.format(cmd))
    p.stdin.write(cmd)
    output = p.communicate()[0]
    print(output)

Ale wynik był niczym.

Wziąłem przykładto pytanie.

Uruchomienie tego samego polecenia mplayer w terminalu działa prawidłowo. Czego mi tu brakuje?

AKTUALIZACJA:

Zmieniłem cmd z „get_meta_artist” na „get_meta_artist n”, tak że przerwanie linii jest wysyłane do potoku, ale nadal nie mam nic na wyjściu.

UPDATE2:

Zmieniłem cmd na „naraz” i muzyka została wstrzymana. Oznacza to, że wysyłanie polecenia przez stdin działało. Oznacza to, że ciąg wyjściowy polecenia „get_meta_artist n” nie został odebrany zgodnie z oczekiwaniami ....

questionAnswers(2)

yourAnswerToTheQuestion