воскресенье, 6 ноября 2011 г.

Управление VLC, Amarok, Kaffine, Clementine, qmmp, guayadeque из консоли


В этом поможет консольная утилита qdbus

Для VLC qdbus org.mpris.vlc /Player
Для Amarok qdbus org.kde.amarok
Для Kaffeine qdbus org.mpris.kaffeine
Для guayadeque qdbus org.mpris.guayadeque
Для Clementine qdbus org.mpris.clementine
Для qmmp qdbus org.mpris.qmmp
Для audacious qdbus org.mpris.audacious

Для xmms2 qdbus org.mpris.xmms2



Пишем в консоле qdbus org.mpris.vlc /Player и получаем:
$ qdbus org.mpris.vlc /Player
Service 'org.mpris.vlc' does not exist.

Ага, забыли запустить плеер, запускаем плеер, и повторяем
userhome@debian:~$ qdbus org.mpris.vlc /Player
method QString org.freedesktop.DBus.Introspectable.Introspect()
signal void org.freedesktop.MediaPlayer.CapsChange(int)
method int org.freedesktop.MediaPlayer.GetCaps()
method void org.freedesktop.MediaPlayer.Next()
method void org.freedesktop.MediaPlayer.Pause()
method void org.freedesktop.MediaPlayer.Play()
method int org.freedesktop.MediaPlayer.PositionGet()
method void org.freedesktop.MediaPlayer.PositionSet(int)
method void org.freedesktop.MediaPlayer.Prev()
method void org.freedesktop.MediaPlayer.Repeat(bool)
method void org.freedesktop.MediaPlayer.Stop()
method int org.freedesktop.MediaPlayer.VolumeGet()
method void org.freedesktop.MediaPlayer.VolumeSet(int)
Как видно есть все для управления. 

Как этот можно использовать?
Например привязать скрипт к комбинации клавиш, и управлять например громкостью в активном плеере:

Перемотка:

 if ps aux | grep vlc | grep -v grep > /dev/null
then
pos=`qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.PositionGet`
let "pos1=$pos 10000"
qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.PositionSet $pos1
fi
Или остановить проигрывание

 if ps aux | grep vlc | grep -v grep > /dev/null
then
qdbus org.mpris.xmms2 /Player org.freedesktop.MediaPlayer.Stop
fi


А может уменьшить громкость одним движением мыши ?
Написать скрипт ~/scripts/volume

if ps aux | grep vlc | grep -v grep > /dev/null
then
volume=`qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.VolumeGet`
let "vol=$volume $1"
qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.VolumeSet $vol
fi

Установить brightside, и привязать этот скрипт к левому верхнему углу.
Теперь при перемещении курсора в левый верхний угол экрана, громкость уменьшится)

Также можно получать Метаданные проигрываемого трека
qdbus org.mpris.vlc /Player GetMetadata
Что можно использовать например в conky 

Комментариев нет: