Comment puis-je jouer une chanson en arrière-plan via ma ligne de commande?

13

J'ai installé play:

sudo apt-get install sox libsox-fmt-mp3

Je peux maintenant lire mes fichiers audio comme ceci:

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

Puisque j'apprends le shell, j'aimerais pouvoir faire quelque chose comme ceci:

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

Après les 10secondes, je peux voir l'écran comme:

 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

Mais la chanson ne joue pas. Mais si je fais ça (sans &):

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

Fonctionne comme prévu. Mais je n'ai pas pu utiliser mon terminal en attendant.

Comment pourrais-je résoudre mon problème avec l'utilisation &?

Fourmis
la source
5
Si vous ne voulez qu'un lecteur CLI pour pouvoir lire de l'audio en arrière-plan, je vous recommande fortement d'essayer cmus. Il a même un script cmuscrobblerpour last.fm et vous pouvez mapper des raccourcis clavier globaux dans le système X Window via cmus-remote. Ou vous pouvez essayer d'utiliser un utilitaire comme screen.
jeremija
cmusest un excellent programme - je devrais développer ce commentaire en une réponse complète!

Réponses:

13

La mise en arrière-plan playavec &échoue car playsouhaite afficher son état, par exemple

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

mais ne peut pas être mis en arrière-plan. Il attend donc jusqu'à ce qu'il soit avorté.

Pour résoudre ce problème, exécutez simplement playavec le -qcommutateur (silencieux). Cela réussira à le fonder et playse terminera à la fin du morceau.

(dormir 10; jouer à -q Desktop / SONGS / 01 \ - \ Oh \ Baby \ Girl.mp3) &

Vous pouvez l'arrêter soit en tapant killall play(si aucune autre instance de lecture n'est en cours d'exécution), soit en kill $!(si vous n'avez pas mis en arrière-plan d'autres processus dans le même terminal après le démarrage de la lecture - $! Vous donne le PID du dernier processus en arrière-plan)

ish
la source
Cela marche. Mais comment se fait-il maintenant que j'arrête de jouer la chanson?
Ant's
2
Vous pouvez l'arrêter soit en tapant killall play(si aucune autre instance de lecture n'est en cours d'exécution), soit en kill $!(si vous n'avez pas mis en arrière-plan d'autres processus dans le même terminal après avoir démarré la lecture - $!vous donne le PID du dernier processus en arrière-plan)
ish
3

il existe une meilleure façon d'exécuter les choses en "arrière-plan" à partir de la ligne de commande.

sudo apt-get install screen

C'est l'un des programmes de ligne de commande les plus astucieux pour Linux. il vous permet d'avoir quelque chose de similaire aux "onglets dans un navigateur" et de basculer de façon transparente entre eux sans aucune interruption des programmes en cours d'exécution. Ce n'est pas le cas dans le programme du terminal lui-même. Mais dans ce shell spécifique, vous avez commencé.

une fois l'installation commencez en tapant

screen 

dans un terminal.

vous créez de nouveaux "onglets" avec ctrl-A c vous passez à l'onglet suivant avec ctrl-A n

voici un tutoriel plus approfondi si vous trouvez les pages de manuel difficiles à comprendre

tomodachi
la source
0

Mes actions Nautilus pour ajouter "Play" et "Stop" au menu contextuel des fichiers audio

Pour ajouter une lecture ...

Définissez une nouvelle action comme suit

"Onglet Action"

  1. Case cochée pour "Afficher l'élément dans le menu contextuel de sélection"
  2. Nouvelle étiquette de contexte d'action = lecture
  3. Info-bulle = lecture audio
  4. Icône = début de lecture multimédia

"Onglet de commande"

  1. Label = Jouer
  2. Chemin = / usr / bin / play -q
  3. Paramètres =% f
  4. (W / Effets en option) Paramètres =% f rate -v vol .25 bass +5 treble +5 reverb
  5. Répertoire de travail =% d

"Onglet Exécution"

  1. Case cochée pour "Normal"

"Onglet Mimetypes"

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

Ou ajoutez-en plus si nécessaire ou laissez-le tranquille pour apparaître partout.

Le reste peut être laissé seul.


Pour ajouter un arrêt ...

Définissez une nouvelle action comme suit

"Onglet Action"

  1. Case cochée pour "Afficher l'élément dans le menu contextuel de sélection"
  2. Étiquette de contexte = Stop
  3. Info-bulle = Arrêter l'audio
  4. Icône = media-playback-stop

"Onglet de commande"

  1. Label = Stop
  2. Chemin = killall
  3. Paramètres = jouer
  4. Répertoire de travail =% d

"Onglet Exécution"

  1. Case cochée pour "Normal"

"Onglet Mimetypes"

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

Ou ajoutez-en plus si nécessaire ou laissez-le tranquille pour apparaître partout.

Le reste peut être laissé seul.

supprimé
la source
Ajustez au besoin. Jouez avec les options d'effets, consultez la page de manuel
supprimé le
2
Comment cela répond-il à la question concernant son exécution à partir de la ligne de commande ? Votre réponse semble concerner Nautilus, un gestionnaire de fichiers à interface graphique. C'est une bonne réponse, mais pour une question différente.
gertvdijk
Parce que c'est un moyen rapide et cool de le faire même si ce n'est pas une réponse en ligne de commande. Impossible de trouver une question pour répondre à la réponse dans ce cas.
supprimé le
0

j'utilise

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

vlc est assez omniprésent.

glenn jackman
la source
0

Il existe de nombreux acteurs sur le marché. Vous pouvez essayer l'open source qui est open source et multiplateforme. C'est mplayer. Essayez cette commande pour vérifier qu'elle est présente ou non.

mplayer --help 
man mplayer

Vous verrez le manuel ou la documentation de cette commande. Vous pouvez vous lire le fichier audio. Vérifiez vos pilotes. Vous devez avoir des pilotes avant de l'utiliser. Si vous n'avez pas ce lecteur, installez-le avec la commande apt dans Ubuntu 16.04 LTS ou la commande apt-get.

sudo apt install mplayer

ou

sudo apt-get install mplayer

utilisez-le simplement en tapant mplayer et le nom du fichier après cela.

mplayer file_path
Hafiz Shehbaz Ali
la source
0

Cela a fonctionné pour moi avec mplayer

nohup mplayer  SomeSong.mp4 > /dev/null 2>&1 &
brandon
la source