Управление плеером 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%.
http://rus-linux.net/MyLDP/mm/amarok.html
|