Verfügt RhythmBox über eine Befehlszeilenschnittstelle oder eine Methode zur Interprozesskommunikation?

21

Ich möchte wirklich gerne mit einem Webserver über die Rhythmbox kommunizieren, damit ich die Musik von meinem Smartphone aus ändern kann. Gibt es eine Befehlszeilenschnittstelle für rhythmbox, um Dinge wie die folgenden (fiktiven) Befehle auszuführen?

rhythmbox next
rhythmbox shuffle=false
rhythmbox change album='Dark Side of the Moon' artist='Pink Floyd' song='Time' 

Gibt es stattdessen einen Socket oder eine Nachrichtenübermittlungsschnittstelle? Gibt es irgendwelche Ersatzprogramme, die die Arbeit erledigen könnten, wie Banshee oder eine andere Art von Server?

Athan Clark
quelle
Mögliches Duplikat? askubuntu.com/questions/21494/…
fossfreedom
Mögliches Duplikat? askubuntu.com/questions/150790/…
fossfreedom
2
@foss nein, keine der Fragen hat eine ähnliche Antwort wie Geppetos.
Braiam

Antworten:

16

Grundsätzlich lautet die kurze Antwort "Ja" und die Ergänzung dieser Antwort lautet "Verwenden Sie den rhythmbox-clientBefehl von einem Terminal aus, um Ihre aktuell ausgeführte Rhythmbox zu steuern. Wenn sie noch nicht geladen ist, wird sie von der ersten Instanz Ihrer Befehle aufgerufen."

In Beispiel: rhythmbox-client --playLässt die aktuelle Rhythmbox-Sitzung beginnen, das aktuelle Lied (oder das erste Lied in der Liste) abzuspielen. Wenn die Rhythmbox geschlossen ist, wird sie zuerst geöffnet, um mit dem Spielen zu beginnen.

Weitere Informationen über die rhythmbox-clientund ihre Verwendung finden Sie in der rhythmbox-client-Manpage . Ich platziere hier einen Teil der Manpage nur als Referenz.

NAME
       rhythmbox-client - controls a running instance of rhythmbox

SYNOPSIS
       rhythmbox-client [option...][file...]

DESCRIPTION
       rhythmbox-client  is a tool for controlling an already running instance
       of  rhythmbox.   It's  useful  for  remote  control  scripting,  adding
       specific  files  to  the library from the shell, or printing details of
       what's playing. It also has an interactive mode, useful for controlling
       playback  remotely  via  ssh.  Any  files  specified  after  the option
       arguments will be added to the library.  If  the  --enqueue  option  is
       given, the files will also be added to the play queue.

OPTIONS
       -?,--help
              Show help options

       --debug
              Enable debug output

       --no-start
              Do not start a new instance of rhythmbox

       --quit Quit rhythmbox

       -i,--interactive
              Start  interactive  mode  --no-present Don't present an existing
              rhythmbox window

       --next Jump to next song

       --previous
              Jump to previous song

       --play Resume playback if currently paused

       --pause
              Pause playback if currently playing

       --play-pause
              Toggle play/pause mode

       --stop Stop playback if currently playing

       --play-uri=URI
              Play a specified URI, importing it if necessary

       --enqueue
              Add specified tracks already in the library to the play queue

       --clear-queue
              Empty the play queue before adding new tracks

       --print-playing
              Print the title and artist of the playing song

       --print-playing-format=format
              Print formatted details of the song (see FORMAT OPTIONS below).

       --set-volume
              Set the playback volume

       --volume-up
              Increase the playback volume

       --volume-down
              Decrease the playback volume

       --print-volume
              Print the current playback volume

       --select-source=URI
              Select the source corresponding to a URI (device or mount point)

       --activate-source=URI
              Select the source corresponding to a URI (device or mount point)
              and start playing from it if not already playing.

       --play-source=URI
              Select the source corresponding to a URI (device or mount point)
              and start playing from it.

FORMAT OPTIONS
       %at    album title

       %aa    album artist

       %aA    album artist (lowercase)

       %as    album artist sortname

       %aS    album artist sortname (lowercase)

       %ay    album year

       %ag    album genre

       %aG    album genre (lowercase)

       %an    album disc number

       %aN    album disc number, zero padded

       %st    stream title

       %tn    track number (i.e 8)

       %tN    track number, zero padded (i.e 08)

       %tt    track title

       %ta    track artist

       %tA    track artist (lowercase)

       %ts    track artist sortname

       %tS    track artist sortname (lowercase)

       %td    track duration

       %te    track elapsed time

       Variables can be combined using quotes. For example "%tn %aa %tt", will
       print  the  track  number  followed  by the artist and the title of the
       track.

AUTHOR
       This manual page was written by Sven Arvidsson  <[email protected]>,  for  the
       Debian system (but may be used by others).

Bearbeiten

Ich habe ein gewisses Interesse an diesem Thema, also habe ich mit dem nächsten Befehl einen Test durchgeführt:

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Seek int64:60000000

Von der ursprünglichen Antwort hier gepostet. Was in der Tat für die Aufgabe der Suche nach dem aktuell gespielten Lied funktioniert (basierend auf dem Kommentar des Fragestellers).

Viel Glück!

Geppettvs D'Constanzo
quelle
Genial! Das erspart mir so viel Kopfschmerzen. Weißt du, ob es eine --seekFähigkeit gibt? Es ist nicht in den Manpages enthalten.
Athan Clark
Leider sind die Rhythmbox-Client-Optionen begrenzt. Ich habe die Details zu dieser Antwort hinzugefügt.
Geppettvs D'Constanzo
Schauen Sie sich diese Antwort an: unix.stackexchange.com/a/75680 , die frühere Option --seek scheint veraltet zu sein, aber es scheint eine andere Lösung zu geben. Bitte lassen Sie uns wissen, ob Sie erfolgreich sind. Vielen Dank.
Geppettvs D'Constanzo
Na ja ... ich habe noch eine Bearbeitung für dich hinterlassen. Viel Glück!
Geppettvs D'Constanzo
Es stellt sich heraus, dass Banshee die Möglichkeit hat, sowohl aktuelle Player-Informationen (wie Titelwiedergabe, Cursorposition, Player-Status usw.) abzufragen als auch die Wiedergabe zu steuern! banshee --help'erklärt alles! Vielen Dank für Ihre Hilfe, ich hoffe, Sie haben einen schönen Tag!
Athan Clark