Come posso riprodurre un brano in background tramite la mia riga di comando?


13

Ho installato play:

sudo apt-get install sox libsox-fmt-mp3

Ora posso riprodurre i miei file audio in questo modo:

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

Da quando sto imparando la shell, vorrei poter fare qualcosa del genere:

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

Dopo i 10secondi, posso vedere lo schermo come:

 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

Ma la canzone non sta suonando. Ma se lo faccio (senza &):

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

Funziona come previsto. Ma non sono riuscito a usare il mio terminale nel frattempo.

Come posso risolvere il mio problema con l'utilizzo &?


5
Se desideri solo un lettore CLI in modo da poter riprodurre l'audio in background, ti consiglio vivamente di provare cmus. Ha anche uno script cmuscrobblerper last.fm ed è possibile mappare tasti di scelta rapida globali nel sistema X Window tramite cmus-remote. Oppure potresti provare a usare un'utilità come screen.
jeremija,

cmusè un ottimo programma, dovrei espandere questo commento in una risposta completa!

Risposte:


13

Lo sfondo playcon &esito negativo perché playvuole generare il suo stato, ad es

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

ma non può se in background. Quindi continua ad aspettare fino a quando non viene interrotto.

Per risolvere questo problema, esegui semplicemente playcon l' -qinterruttore (silenzioso). Questo lo metterà in background e playterminerà quando il brano termina.

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

Puoi fermarlo digitando killall play(se non sono in esecuzione altre istanze di riproduzione) o kill $!(se non hai eseguito lo sfondo di altri processi nello stesso terminale dopo aver iniziato la riproduzione - $! Ti dà il PID dell'ultimo processo in background)


Questo funziona Ma come mai ora smetto di suonare la canzone?
Formica,

2
Puoi interromperlo digitando killall play(se non sono in esecuzione altre istanze di riproduzione ) o tramite kill $!(se non hai eseguito il background di altri processi nello stesso terminale dopo aver avviato la riproduzione - $!ti dà il PID dell'ultimo processo in background)
ish

3

esiste un modo migliore di eseguire le cose in "background" dalla riga di comando.

sudo apt-get install screen

È uno dei programmi da riga di comando più eleganti per Linux. ti permette di avere qualcosa di simile alle "schede in un browser" e passare da una all'altra senza interruzioni dei programmi in esecuzione. Tuttavia, non sono presenti schede nel programma terminale stesso. Ma all'interno di quella specifica shell hai iniziato.

una volta installato avviarlo digitando

screen 

in un terminale.

crei nuove "schede" con ctrl-A c passi alla scheda successiva con ctrl-A n

ecco un tutorial più approfondito se trovi difficili da capire le pagine man


0

Le mie azioni Nautilus per aggiungere "Riproduci" e "Stop" al menu contestuale per i file audio

Per aggiungere Play ...

Definire una nuova azione come segue

"Scheda Azione"

  1. Casella di controllo selezionata per "Visualizza elemento nel menu contestuale di selezione"
  2. Etichetta contesto nuova azione = Riproduci
  3. Descrizione comando = Riproduci audio
  4. Icona = media-playback-start

"Scheda comando"

  1. Etichetta = Riproduci
  2. Percorso = / usr / bin / play -q
  3. Parametri =% f
  4. (Opzionale W / Effetti) Parametri =% f rate -v vol .25 bassi +5 acuti +5 riverbero
  5. Directory di lavoro =% d

"Scheda Esecuzione"

  1. Casella di controllo selezionata per "Normale"

"Scheda Mimetypes"

  1. Aggiungi audio / mpeg
  2. Aggiungi audio / flac
  3. Aggiungi audio / x-wav

Oppure aggiungi altro se necessario o lascialo solo per mostrarti ovunque.

Il resto può essere lasciato solo.


Per aggiungere Stop ...

Definire una nuova azione come segue

"Scheda Azione"

  1. Casella di controllo selezionata per "Visualizza elemento nel menu contestuale di selezione"
  2. Etichetta di contesto = Stop
  3. Descrizione comando = Ferma audio
  4. Icona = media-playback-stop

"Scheda comando"

  1. Etichetta = Stop
  2. Path = killall
  3. Parametri = play
  4. Directory di lavoro =% d

"Scheda Esecuzione"

  1. Casella di controllo selezionata per "Normale"

"Scheda Mimetypes"

  1. Aggiungi audio / mpeg
  2. Aggiungi audio / flac
  3. Aggiungi audio / x-wav

Oppure aggiungi altro se necessario o lascialo solo per mostrarti ovunque.

Il resto può essere lasciato solo.


Adattare se necessario. Gioca con le opzioni degli effetti, vedi la manpage di sox per ulteriori informazioni al riguardo ... manpages.ubuntu.com/manpages/raring/en/man1/sox.1.html
cancellato il

2
In che modo questo risponde alla domanda sull'esecuzione di questo dalla riga di comando ? La tua risposta sembra riguardare Nautilus, un file manager abilitato per la GUI. È una bella risposta, ma per una domanda diversa.
gertvdijk,

Perché è un modo rapido e interessante per farlo anche se non è una risposta da riga di comando. Non è stato possibile trovare una domanda adatta alla risposta in questo caso.
cancellato il

0

Io uso

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

VLC è piuttosto onnipresente.


0

Ci sono molti giocatori sul mercato. Puoi provare open source che è open source e multipiattaforma. È mplayer. Prova questo comando per verificare che sia presente o meno.

mplayer --help 
man mplayer

Vedrai il manuale o la documentazione di questo comando. Puoi riprodurre il file audio. Controlla i tuoi autisti. Dovresti avere i driver prima di usarlo. In caso contrario, installarlo con il comando apt in Ubuntu 16.04 LTS o il comando apt-get.

sudo apt install mplayer

o

sudo apt-get install mplayer

usalo semplicemente digitando mplayer e il nome del file dopo quello.

mplayer file_path

0

Questo ha funzionato per me con mplayer

nohup mplayer  SomeSong.mp4 > /dev/null 2>&1 &
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.