Библиотека сайта rus-linux.net
Управление плеером Amarok из командной строки
Оригинал: How-To: Control Amarok from Command-LineАвтор: Craciun Dan
Дата публикации: 18 марта 2014 года
Перевод: А. Кривошей
Дата перевода: октябрь 2014 г.
Управлять Amarok из командной строки может быть очень удобно в некоторых ситуациях, кроме того это дает возможность использования скриптов и алиасов для отправки команд напрямую в Amarok без открытия окна, оставляя его в системном трее.
Этот способ использует D-BUS - систему обмена информацией между процессами. Большинство команд простые и интуитивные, а qdbus поддерживает автодополнение по TAB для доступных агрументов командной строки.
Например, вывод команды qdbus org.kde.amarok /Player после нажатия ТАВ покажет примерно следующее:
... method void org.freedesktop.MediaPlayer.Mute() method void org.freedesktop.MediaPlayer.Next() method void org.freedesktop.MediaPlayer.Pause() method void org.freedesktop.MediaPlayer.Play() method void org.freedesktop.MediaPlayer.PlayPause() ...
Ниже список некоторых очень полезных команд.
Запуск воспроизведения трека в Amarok:
qdbus org.kde.amarok /Player org.freedesktop.MediaPlayer.Play
Пауза или возобновление воспроизведения:
qdbus org.kde.amarok /Player org.freedesktop.MediaPlayer.PlayPause
Отключить звук в Amarok:
qdbus org.kde.amarok /Player org.freedesktop.MediaPlayer.Mute
Изменить уровень громкости
qdbus org.kde.amarok /Player org.freedesktop.MediaPlayer.VolumeSet 80
Приведенная выше команда установит уровень звука 80%.
Показать главное окно программы
qdbus org.kde.amarok /amarok/MainWindow org.qtproject.Qt.QWidget.showNormal
Скрыть главное окно
qdbus org.kde.amarok /amarok/MainWindow org.qtproject.Qt.QWidget.hide
Получить метеданные, включая название трека, альбом, год выхода и т.д.
qdbus org.kde.amarok /Player org.freedesktop.MediaPlayer.GetMetadata
Вы можете использовать эти команды в скриптах, например для комментаторов в IRC.
Для того, чтобы установить алиасы для различных уровней громкости, я использую следующую функцию:
qdbus org.kde.amarok /Player org.freedesktop.MediaPlayer.GetMetadata
# set amarok volume amvol () { if [ "$1" == "" ] || [ $1 -lt 0 ] || [ $1 -gt 100 ]; then echo "Usage: amvol N" echo " N - integer between 0 and 100" else qdbus org.kde.amarok /Player VolumeSet $1 echo "Amarok volume set to $1" fi } alias ammin='amvol 0' alias amv20='amvol 20' alias amv40='amvol 40' alias amv60='amvol 60' alias amv80='amvol 80' alias ammax='amvol 100'
Ниже пример комментатора для XChat:
#!/usr/bin/perl # Amarok announcer for XChat - type /NPS to use Xchat::register("NPS", "0.2.0", "Amarok Announcer"); Xchat::hook_command("NPS", cmd_nps); sub cmd_nps { $META = `qdbus org.kde.amarok /Player GetMetadata`; $artist = ( $META =~ /artist: (.*)/ ? $1 : "(No Artist" ); $title = ( $META =~ /title: (.*)/ ? $1 : "(No Title)" ); $line_nps = "Rocks! $artist - $title"; Xchat::command("ME $line_nps"); }
Изменение уровня громкости в KMix
Таким же способом, используя qdbus, вы можете управлять KMix. Например, вы можете менять уровень громкости с помощью команды вида:
qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Devices_1/alsa_output_pci_0000_00_1b_0_analog_stereo org.kde.KMix.Control.volume 80
Уровень громкости будет установлен на 80%.