Wie kann ich ein Lied über meine Kommandozeile im Hintergrund abspielen?

13

Ich habe installiert play:

sudo apt-get install sox libsox-fmt-mp3

Ich kann jetzt meine Audiodateien wie folgt abspielen:

play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3

Da ich Shell lerne, wünschte ich, ich könnte so etwas tun:

 (sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) &

Nach 10Sekunden sehe ich den Bildschirm wie folgt:

 File Size: 7.38M     Bit Rate: 260k
  Encoding: MPEG audio    Info: 2012
  Channels: 2 @ 16-bit   Track: 01/09
Samplerate: 44100Hz      Album: Maalai Pozhudhin Mayakathilaey :::tunesinn.blogspot.com:::
Replaygain: off         Artist: Hemachandra, Achu
  Duration: 00:03:46.98  Title: Oh Baby Girl

Aber das Lied spielt nicht. Aber wenn ich das mache (ohne &):

(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) 

Funktioniert wie erwartet. Aber ich konnte mein Terminal in der Zwischenzeit nicht benutzen.

Wie könnte ich mein Problem mit der Verwendung lösen &?

Ameisen
quelle
5
Wenn Sie nur einen CLI-Player möchten, damit Sie Audio im Hintergrund wiedergeben können, empfehlen wir Ihnen dringend, es zu versuchen cmus. Es gibt sogar ein Skript cmuscrobblerfür last.fm und Sie können globale Hotkeys im X-Window-System über abbilden cmus-remote. Oder Sie könnten versuchen, ein Hilfsprogramm wie screen.
Jeremija
cmusist ein großartiges Programm - ich sollte diesen Kommentar zu einer vollständigen Antwort erweitern!

Antworten:

13

Hintergrund playmit &schlägt fehl, weil playsein Status ausgegeben werden soll, z

In:12.7% 00:00:27.31 [00:03:07.52] Out:1.20M [!=====|=====!] Hd:0.0 Clip:0  

Kann aber nicht, wenn im Hintergrund. Also wartet es, bis es abgebrochen wird.

Um dies zu lösen, laufen Sie einfach playmit dem -q(leisen) Schalter. Dies wird erfolgreich im Hintergrund ausgeführt und playendet, wenn das Lied endet.

(Schlaf 10; spiele -q Desktop / SONGS / 01 \ - \ Oh \ Baby \ Girl.mp3) &

Sie können es stoppen, indem Sie entweder eingeben killall play(wenn keine anderen Wiedergabeinstanzen ausgeführt werden) oder indem Sie kill $!(wenn Sie nach dem Start des Spiels keine anderen Prozesse im Hintergrund ausgeführt haben - $! Gibt die PID des zuletzt im Hintergrund ausgeführten Prozesses an).

ish
quelle
Das funktioniert. Aber warum höre ich jetzt auf, das Lied zu spielen?
Ameisen
2
Sie können es stoppen, indem Sie entweder eingeben killall play(wenn keine anderen Wiedergabeinstanzen ausgeführt werden) oder indem Sie kill $!(wenn Sie nach dem Start der Wiedergabe keine anderen Prozesse im selben Terminal im Hintergrund ausgeführt haben - $!Sie erhalten die PID des zuletzt im Hintergrund ausgeführten Prozesses)
ish
3

Es gibt eine bessere Möglichkeit, Dinge im "Hintergrund" über die Befehlszeile auszuführen.

sudo apt-get install screen

Es ist eines der geschicktesten Kommandozeilenprogramme für Linux. Es ermöglicht Ihnen, etwas Ähnliches zu "Registerkarten in einem Browser" zu haben und nahtlos zwischen ihnen zu wechseln, ohne laufende Programme zu unterbrechen. Es gibt jedoch keine Registerkarten im Terminalprogramm. Aber innerhalb dieser spezifischen Shell haben Sie begonnen.

Nach der Installation starten Sie es durch Eingabe

screen 

in einem Terminal.

Mit Strg-A c erstellen Sie neue "Tabs". Mit Strg-A n wechseln Sie zum nächsten Tab

Hier finden Sie ein ausführlicheres Tutorial, wenn Sie die Manpages schwer verstehen

Tomodachi
quelle
0

Meine Nautilus-Aktionen zum Hinzufügen von "Play" und "Stop" zum Kontextmenü für Audiodateien

Zum Hinzufügen von Spielen ...

Definieren Sie eine neue Aktion wie folgt

"Action Tab"

  1. Kontrollkästchen Aktiviert für "Element im Auswahlkontextmenü anzeigen"
  2. New Action Context Label = Spielen
  3. Tooltip = Audio abspielen
  4. Icon = Start der Medienwiedergabe

"Command Tab"

  1. Label = Abspielen
  2. Pfad = / usr / bin / play -q
  3. Parameter =% f
  4. (Optionale W / Effekte) Parameter =% f Rate -v Vol. 25 Bässe + 5 Höhen + 5 Hall
  5. Arbeitsverzeichnis =% d

"Registerkarte" Ausführung ""

  1. Kontrollkästchen für "Normal" angekreuzt

"Mimetypes Tab"

  1. In audio / mpeg
  2. In Audio / flac
  3. In audio / x-wav

Oder fügen Sie bei Bedarf mehr hinzu oder lassen Sie es in Ruhe, um überall zu erscheinen.

Der Rest kann alleine gelassen werden.


Stop hinzufügen ...

Definieren Sie eine neue Aktion wie folgt

"Action Tab"

  1. Kontrollkästchen Aktiviert für "Element im Auswahlkontextmenü anzeigen"
  2. Kontextbezeichnung = Stopp
  3. Tooltip = Audio stoppen
  4. Icon = Medienwiedergabe-Stopp

"Command Tab"

  1. Label = Stop
  2. Pfad = killall
  3. Parameter = spielen
  4. Arbeitsverzeichnis =% d

"Registerkarte" Ausführung ""

  1. Kontrollkästchen für "Normal" angekreuzt

"Mimetypes Tab"

  1. In audio / mpeg
  2. In Audio / flac
  3. In audio / x-wav

Oder fügen Sie bei Bedarf mehr hinzu oder lassen Sie es in Ruhe, um überall zu erscheinen.

Der Rest kann alleine gelassen werden.

gelöscht
quelle
Passen Sie sie nach Bedarf an. Spielen Sie mit den Effektoptionen, finden Sie weitere Informationen in der Sox-Manpage ... manpages.ubuntu.com/manpages/raring/en/man1/sox.1.html
gelöscht am
2
Wie beantwortet dies die Frage bezüglich der Ausführung über die Befehlszeile ? Ihre Antwort scheint sich auf Nautilus zu beziehen, einen GUI-fähigen Dateimanager. Es ist eine schöne Antwort, aber für eine andere Frage.
gertvdijk
Weil es eine schnelle und coole Möglichkeit ist, dies zu tun, obwohl es keine Kommandozeilenantwort ist. Es wurde keine Frage gefunden, die zu der Antwort in diesem Fall passt.
gelöscht
0

ich benutze

cvlc --play-and-exit "$filename" &>/dev/null &

VLC ist ziemlich allgegenwärtig.

Glenn Jackman
quelle
0

Es gibt viele Spieler auf dem Markt. Sie können Open Source ausprobieren, also Open Source und plattformübergreifend. Es ist mplayer. Probieren Sie diesen Befehl aus, um zu überprüfen, ob er vorhanden ist oder nicht.

mplayer --help 
man mplayer

Sie sehen das Handbuch oder die Dokumentation dieses Befehls. Sie können die Audiodatei abspielen. Überprüfen Sie Ihre Treiber. Sie sollten Treiber haben, bevor Sie es verwenden. Wenn Sie dies nicht tun, installieren Sie diesen Player mit dem Befehl apt in Ubuntu 16.04 LTS oder mit dem Befehl apt-get.

sudo apt install mplayer

oder

sudo apt-get install mplayer

Verwenden Sie es einfach, indem Sie mplayer und den Dateinamen danach eingeben.

mplayer file_path
Hafiz Shehbaz Ali
quelle
0

Das hat bei mir mit mplayer geklappt

nohup mplayer  SomeSong.mp4 > /dev/null 2>&1 &
Brandon
quelle