XMMS2 — аудиопроигрыватель для красноглазого

XMMS2 — по сути инструмент для создания медиапроигрывателя из чего придётся. Но если вы достаточно брутальны и красноглазы, чтобы с ним можно работать из консоли, то можно получить очень легковесный и функциональный плейэр. Итак, он состоит из 2-х частей:

  • Сервера xmms2d
  • Клиента xmms2

На Debian устанавливается как обычно: не просто, а очень просто:

# apt-get install xmms2

Сервер xmms2d

Занимается тем, что висит деменом и принимает запросы от клиента. Собственно он и работает с аудио-системой, кодеками и всем, что необходимо для проигрывания. Запускается так:

$ xmms2d
  INFO: ../src/xmms/log.c:36: Initialized logging system :)
  INFO: ../src/xmms/ipc.c:950: IPC listening on 'unix:///tmp/xmms-ipc-r-asian'.
  INFO: ../src/xmms/main.c:507: Using output plugin: alsa

При запуске выводит

  1. адрес сокета, на который принимается подключение клиента
  2. какая звуковая система используется для вывода звука

Его конфиг лежит в ~/.config/xmms2/xmms2.conf, и там XML. Там же лежит его SQLIte БД с плэйлистами ~/.config/xmms2/medialib.db

В конфиге есть следующие секции

        <section name="alsa"/>
        <section name="bindata"/>
        <section name="converter"/>
        <section name="core"/>
        <section name="diskwrite"/>
        <section name="effect"/>
        <section name="equalizer"/>
        <section name="file"/>
        <section name="id3v2"/>
        <section name="mad"/>
        <section name="magic"/>
        <section name="medialib"/>
        <section name="nulstripper"/>
        <section name="output"/>
        <section name="playlist"/>
        <section name="replaygain"/>
        <section name="segment"/>
        <section name="vorbis"/>
        <section name="wave"/>

Настроить есть что. Я пока ограничусь тем, что изменю адрес сокета для подключения клиентов на такой tcp:127.0.0.1:9667. Если указать вместо 127.0.0.1 IP сетевой карты, то можно подключаться и удалённо. <code xml> <section name=«core»> <property name=«ipcsocket»>tcp:127.0.0.1:9667</property>

              <property name="shutdownpath">/home/r-asian/.config/xmms2/shutdown.d</property>
              <property name="startuppath">/home/r-asian/.config/xmms2/startup.d</property>
      </section>

</code>

Запускаем сервер

$ xmms2d
 INFO: ../src/xmms/log.c:36: Initialized logging system :)
 INFO: ../src/xmms/ipc.c:950: IPC listening on 'tcp://127.0.0.1:9667'.
 INFO: ../src/xmms/main.c:507: Using output plugin: alsa

Прописываем конфиг клиента в ~/.config/xmms2/clients/cli.conf

$ cat cli.conf
ipcpath=tcp://127.0.0.1:9667
statusformat=${artist} - ${title}
listformat=${artist} - ${title} (${minutes}:${seconds})
autostart=true

И посылаем уже запущенному на порту 9667 серверу команду на вывод текущего плэйлиста.

$ xmms2 list

Total playtime: 0:00:00

Плэйлист пуст.

Клиент xmms2

Полный список команд, которые умеет посылать консольный клиент можно получить просто набрав xmms2 без параметров

$ xmms2
Available commands:
  add - adds a URL to the playlist
  addarg - adds one URL with arguments to the playlist
  addid - adds a Medialib id to the playlist
  insert - inserts one URL at a specific position
  insertid - inserts one Medialib id at a specific position
  radd - adds a directory recursively to the playlist
  clear - clears the playlist
  shuffle - shuffles the playlist
  sort - sort the playlist; use a space delimiter for multiple properties
  remove - removes something from the playlist
  list - lists the playlist
  addpls - Adds the contents of a playlist file to the playlist
  play - starts playback
  stop - stops playback
  toggleplay - toggles playback status between play/pause
  pause - pause playback
  next - play next song
  prev - play previous song
  seek - seek to a specific place in current song
  jump - take a leap in the playlist
  move - move a entry in the playlist
  volume - set volume for a channel
  volume_list - list volume levels for each channel
  mlib - medialib manipulation - type 'xmms2 mlib' for more extensive help
  playlist - playlist manipulation - type 'xmms2 playlist' for more extensive help
  coll - collection manipulation - type 'xmms2 coll' for more extensive help
  browse - browse server file lists
  status - go into status mode
  info - information about current entry
  current - formatted information about the current entry
  config - set a config value
  config_list - list all config values
  plugin_list - list all plugins loaded in the server
  stats - get statistics from server
  quit - make the server quit
  help - print help about a command

Ну и плюсом можно получить море информации из всеми любимых манов

man xmms2

Базовые операции с XMMS2

Создать плэйлист с названием picnic-favorites

$ xmms2 playlist create picnic-favorites

Просмотреть список плэйлистов

$ xmms2 playlist list
  picnic-favorites
->Default

Как мы видим, наш лист создался, но активным является Default

Создадим ещё один плэйлист и посмотрим как наполняется их список

$ xmms2 playlist create aria-favorites
$ xmms2 playlist list
  picnic-favorites
  aria-favorites
->Default

Удалить ненужный плэйлист

$ xmms2 playlist remove aria-favorites
Playlist removed

Сделать активным плэйлист

$ xmms2 playlist load picnic-favorites

Посмотрим список плэйлистов. picnic-favorites стал активным

$ xmms2 playlist list
->picnic-favorites
  Default

Добавить в активный плэйлист композицию

$ xmms2 add picnic-favorites //mnt/storage2/storage/music/copy/picnic/Piknik\,\ Sekta\ Mo-Afrodita\ iz\ peny\ i\ schelochi.mp3
Added //mnt/storage2/storage/music/copy/picnic/Piknik, Sekta Mo-Afrodita iz peny i schelochi.mp3

И ещё парочку

$ xmms2 add picnic-favorites //mnt/storage2/storage/music/copy/picnic/Piknik-Nastojaschie\ dni.mp3
  Added //mnt/storage2/storage/music/copy/picnic/Piknik-Nastojaschie dni.mp3
$ xmms2 add picnic-favorites //mnt/storage2/storage/music/copy/picnic/Piknik-Navuhodonosor.mp3
  Added //mnt/storage2/storage/music/copy/picnic/Piknik-Navuhodonosor.mp3
$ xmms2 add picnic-favorites //mnt/storage2/storage/music/copy/picnic/Piknik\,\ Sekta\ Mo-Bud-\ navsegda.mp3
  Added //mnt/storage2/storage/music/copy/picnic/Piknik, Sekta Mo-Bud- navsegda.mp3
$ xmms2 add picnic-favorites //mnt/storage2/storage/music/copy/picnic/Piknik-Lico.mp3
  Added //mnt/storage2/storage/music/copy/picnic/Piknik-Lico.mp3

Просмотреть список композиций текущего плэйлиста

$ xmms2 list
->[0/216] Ïèêíèê & Ñåêòà Ìî - Àôðîäèòà èç ïåíû è ùåëî÷è
  [1/217] Ïèêíèê - Íàñòîÿùèå äíè (04:11)
  [2/218] Ïèêíèê - Íàâóõîäîíîñîð (05:37)
  [3/219]  - Piknik, Sekta Mo-Bud- navsegda (07:29)
  [4/220] Ïèêíèê - Ëèöî (03:58)
Total playtime: 0:25:45

К сожалению на данный момент у меня с настройками консоли и тегами в mp3-файлах всё печально :-)

Удалить композицию из плэйлиста

$ xmms2 remove 4

Убедимся что удалилась

$ xmms2 list
->[0/216] Ïèêíèê & Ñåêòà Ìî - Àôðîäèòà èç ïåíû è ùåëî÷è
  [1/217] Ïèêíèê - Íàñòîÿùèå äíè (04:11)
  [2/218] Ïèêíèê - Íàâóõîäîíîñîð (05:37)
  [3/219]  - Piknik, Sekta Mo-Bud- navsegda (07:29)

Запустить проигрывание плэйлиста

$xmms2 play

Таким же образом оперируем со stop, pause, prev, next


Добавить комментарий