XMMS2 - консольный аудио плеер

Posted on Октябрь 8th, 2009 by helios and tagged , , , , .

Написано для сайта ]]>http://lnx.su/]]>.
]]>Ссылка на оригинал.]]>

Вступление.
Давным давно, когда у Гейтса ещё не горели уши от вспоминавших его "фанатов", когда пингвинами называли только птиц с северного полюса... в подземелиях Xerox появился новый мир! Он был похож на старый, но в нём не надо было знать хитроумных "заклинаний", в нём могли существовать обычные люди, он открыл компьютерный мир внешнему миру...

Но оставались и "староверы", которые не хотели использовать для призыва приложений нечистого зверя "мышь". Они продолжали пользоваться старым, проверенным артефактом "клавиатура" для выполнения своих задач. Они читали "заклинания", чем приводили очевидцев в изумление... В конце концов 2 мира отгородились друг от друга, и лишь некоторые программки связывали один с другим...

Суть
Многие из нас знают популярные аудио плееры, например, winamp, RhythmBox, Banshe и т.д. Сегодня я хочу представить плеер, расчитанный на работу в консоли: XMMS2.
Он имеет серверную часть и клиентскую. Для запуска сервера нужно призвать его из консоли:

root@lnx:~# xmms2d
PLEASE DON'T RUN XMMS2D AS ROOT!
 
(if you really must, read the help)

И если бы я не имел привычки сидеть под рутом, что всё бы запустилось, но тут - "фигвам". Чтобы убетить, xmms2d в том, что мы уверены, что "нам оно надо", запускаем xmms2d со спец. ключиком:
root@lnx:~# xmms2d --yes-run-as-root
***************************************
Warning! You are running XMMS2D as root, this is a bad idea!
But I'll allow it since you asked nicely.
***************************************
 
 INFO: ../src/xmms/log.c:36: Initialized logging system :)
 INFO: ../src/xmms/ipc.c:950: IPC listening on 'unix:///tmp/xmms-ipc-root'.
 INFO: ../src/xmms/main.c:507: Using output plugin: alsa
Нам говорят, что мы не правы, но всё же демон запускается. И забирает с собой терминал (теперь нам ничего не ввести...). Для того, чтобы умерить его аппетит ставим значёк & в конце вызова.
Он выплёвывает свой PID и отдаёт нам консоль(но будет выплёвывать сюда информацию а ля "новая песенка!"). Поэтому, изменяем до
root@lnx:~# xmms2d --yes-run-as-root > /dev/null &
Чтобы он выводил всё в "ничто"...
Теперь, кстати, можно закрыть и консоль, от куда он был вызван, и он не умрёт.

Итак, демон весит, теперь будем его "напрягать": посылать ему команды. Во-первых, хорошо бы ему закинуть директорию, из которой ему брать песни:
root@lnx:~# xmms2 radd file:///home/muzlo/ДДТ/
Теперь в нашем плей-листе весят по-порядку все песни из папки /home/muzlo/ДДТ/. Любителям слушать песни вразброс:
root@lnx:~# xmms2 shuffle
Глянуть список можно позвав всё тот же xmms2, но уже с параметром "list". Ну и так далее: play, next, prev.
Для того, чтобы увидеть все возможные команды можно просто набрать xmms2:

root@lnx:~# 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
Просто, как кирпич!
Очевидно, что на такой простой протокол легко натянуть какую-нибуть оболочку... Как следствие существует куча и графических клиентов: Abraca, AlbumThing, Azrael, Blastwave, bluegroove, Camio, Esperanza. Можно использовать их...

Напоследок, ещё одна "феничка": можно добавить в файл /etc/rc.local строчки

xmms2d --yes-run-as-root > /dev/null &
sleep 1;
xmms2 play

И мы получаем при запуске системы сразу и запущенный плеер, причём с той песни, на которой и остановился. Мелочь, но приятно... Кстати, при выключении музыка будет играть почти до конца...

Комментарии

Re: XMMS2 - консольный аудио плеер

Здорово конечно. Но имхо MOCP поудобнее будет.

Comment by Гость (не проверено) on Окт 12th, 2009 at 7:15 после полудня

Re: XMMS2 - консольный аудио плеер

Вы не в курсе, случайно, AlbumThing с xmms2 0.5 работает? Просто ставил уже Abraca, отказывается добавлять файлы, говорят, из-за изменений в api ((

Comment by flac+cue fan =) (не проверено) on Ноя 3rd, 2009 at 11:40 утра

Re: XMMS2 - консольный аудио плеер

Хм... я с GUI не пользовал XMMS2, но, думаю, если разаработка не прекратилась - должно работать. ]]>http://ru.wikipedia.org/wiki/XMMS2]]> - пишут, что разработка идёт...

Comment by helios on Ноя 4th, 2009 at 7:47 утра

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

  • You may insert videos with [video:URL]
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <apt>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <pascal>, <php>, <python>, <ruby>, <sql>, <xml>. The supported tag styles are: <foo>, [foo].
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании