web-dev-qa-db-fra.com

Comment interroger mplayer sur la chanson en cours de lecture?

J'utilise cette commande pour jouer de la musique en arrière-plan (sans interface graphique):

mplayer -shuffle -playlist /home/geppettvs/NAS/Musica/playlist.m3u </dev/null >/dev/null 2>&1 &

Il en résulte que la musique est collectée à partir du dossier Musique dans un NAS, qui est lu en arrière-plan.

La liste de lecture elle-même est simplement un fichier de liste de lecture créé avec Rhythmbox ou tout autre logiciel de lecture de musique avec la possibilité de gérer des listes de lecture.

Ainsi, mplayer commence par une chanson aléatoire, après quoi il continue à jouer de la musique sans interruption.

Ce dont j'ai besoin, c’est d’interroger mplayer et de lui demander le nom de la chanson en cours de lecture afin de la placer quelque part, disons: écrivez-la dans un fichier texte pour une utilisation ultérieure. (Juste le nom du fichier sans chemin)

À l’heure actuelle, une fois que mplayer commence à jouer de la musique à partir de la liste de lecture, certains efforts pour interroger ce qu’il lit en cours se traduiront par "playlist.m3u" comme nom du titre au lieu du nom de fichier mp3 actuel.

Des alternatives

Je suis ouvert à toutes les alternatives, tant qu'il existe une meilleure façon de le faire sans interface graphique. Faites le moi savoir et je vais l'essayer. Toutes les idées sont les bienvenues.

5

Quelque chose comme ce script fou devrait fonctionner:

lsof -c mplayer | fgrep ".mp3" | awk -F"/" '{ print $NF; }' | cut -d'.' -f1

Fondamentalement, cela fonctionne de la manière suivante:

  • la partie lsof recherche tous les fichiers ouverts qui sont ouverts à cause de mplayer
  • fgrep saisit le fichier .mp3 en supposant qu'il s'agit d'un mp3. J'ai utilisé fgrep parce que le symbole du point devait également être pris en compte.
  • awk arrive et délimite fondamentalement tout ce qui est basé sur les barres obliques à partir desquelles les fichiers sont situés, puis $ NF en prend la dernière occurrence.
  • Puisque tu voulais le fichier sans la partie mp3, je mets là une coupe de base, mais cela pourrait aussi être fait avec le awk.

Alors maintenant, vous avez un moyen de récupérer les chansons d’un mplayer.

Notez que mplayer doit être en cours d'exécution pour que cela fonctionne, car lsof vérifie les fichiers ouverts.

5
Luis Alvarado