amixer über python script ansteuern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    für die Wiedergabe von Internetradio benutze ich mpg123. Damit die Ausgabe über analog funktioniert, muss ich über Kommandozeile noch eingeben:

    sudo amixer cset numid= 3 1

    Die Wiedergabe soll jetzt automatisiert ablaufen, deshalb gebe ich diesen Befehl über das python-script aus, das auch die Wiedergabe startet:

    os.system ('sudo amixer cset numid= 3 1')

    Da das Skript selbst über 'sudo python' gestartet wird, sollte das funktionieren. Geht aber nicht: erst wenn ich den Befehl nochmal manuell über die Kommandozeile eingebe, kann ich das Radio hören.

    Wieso funktioniert das nicht und wie kann man das beheben?

    Einmal editiert, zuletzt von semimemi (8. September 2014 um 16:05)

  • Das Shell script bringt auch nicht das gewünschte Ergebnis. Ich denke mittlerweile, dass es vielleicht an etwas anderem liegt. Trothdem danke für die Antworten!

    Einmal editiert, zuletzt von semimemi (9. September 2014 um 11:02)

    • Offizieller Beitrag

    Dann probiers doch mal über subprocess

    Code
    def alsa_start():
        als = subprocess.Popen(["amixer","cset", "numid=3", "1"], stdout=subprocess.PIPE, stderr =subprocess.PIPE)
        out, err = als.communicate()
        return out, error
    
    
    check = alsa_start()
    print check

    Dann sollte auf jeden fall ne Fehlermeldung da stehen, wenn etwas schiefläuft.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (9. September 2014 um 11:05)

  • Der Weg über den subprocess hat funktioniert. Allerdings musste ich mpg123 auch noch mit dem Parameter -o alsa dazu zwingen, über alsa auszugeben. Jetzt funktioniert es wunderbar. Danke an alle, die sich Mühe gegeben haben, mir zu helfen!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!