MOCP - Music On Console Player Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:mocp [2010/09/10 12:25]
проставлены тэги
wiki:mocp [2012/01/29 02:32] (текущий)
[Интеграция с conky]
Строка 1: Строка 1:
 ====== MOCP - Music On Console Player ====== ====== MOCP - Music On Console Player ======
 +
 **MOCP** (также именуется MOC) - аудиоплеер,​ известный прежде всего благодаря своему консольному интерфейсу,​ что во многих случаях является ощутимым преимуществом. он реализован в виде двух составных частей - собственно демона((демон или daemon - работающая в фоне программа,​ управляемая с помощью обособленных программ-клиентов))-проигрывателя и псевдографического интерфейса на [[wpru>​ncurses]]. **MOCP** (также именуется MOC) - аудиоплеер,​ известный прежде всего благодаря своему консольному интерфейсу,​ что во многих случаях является ощутимым преимуществом. он реализован в виде двух составных частей - собственно демона((демон или daemon - работающая в фоне программа,​ управляемая с помощью обособленных программ-клиентов))-проигрывателя и псевдографического интерфейса на [[wpru>​ncurses]].
 вот небольшой список преимуществ данного проигрывателя:​ вот небольшой список преимуществ данного проигрывателя:​
Строка 7: Строка 8:
   * низкая требовательность к ресурсам за счет отсутствия навороченной графики   * низкая требовательность к ресурсам за счет отсутствия навороченной графики
   * возможность управления извне - например,​ из командной строки или с помощью кнопок на панели ​   * возможность управления извне - например,​ из командной строки или с помощью кнопок на панели ​
-  * запущенный в "исках"​ плеер будет играть и при переходе в tty-консоль((более того, при переключении консолей плеер ставится на паузу, пока пользователь логинится в текущей консоли)) +  * запущенный в "иксах" плеер будет играть и при переходе в tty-консоль((более того, при переключении консолей плеер ставится на паузу, пока пользователь логинится в текущей консоли)) 
-вкратце можно сказать,​ что mocp - отличный плеер для тех, кому от плеера требуется именно то, для чего он предназачен - прослушивание музыки. +Вкратце можно сказать,​ что mocp - отличный плеер для тех, кому от плеера требуется именно то, для чего он предназаченн - прослушивание музыки. 
-===== установка ===== + 
-первым делом потребуется [[wiki:​установка_программ|установить]] пакет ''​moc''​. например,​ с помощью ''​aptitude'':​ +===== Установка ===== 
-<​code ​bash>​sudo ​aptitude ​install moc</​code>​ + 
-теперь нужно распаковать уже готовый пример файла настроек+Первым делом потребуется [[wiki:​установка_программ|установить]] пакет ''​moc''​. например,​ с помощью ''​apt-get'':​ 
 +<​code>​sudo ​apt-get ​install moc</​code>​ 
 +Теперь нужно распаковать уже готовый пример файла настроек:
 <code bash>​zcat /​usr/​share/​doc/​moc/​examples/​config.example.gz > ~/​.moc/​config</​code>​ <code bash>​zcat /​usr/​share/​doc/​moc/​examples/​config.example.gz > ~/​.moc/​config</​code>​
-===== интерфейс и управление ===== + 
-==== псевдографический интерфейс ==== +===== Интерфейс и управление ===== 
-установив пакет, запустите проигрыватель в [[manual:​терминал|терминале]] с помощью команды+ 
 +==== Псевдографический интерфейс ==== 
 + 
 +Установив пакет, запустите проигрыватель в [[manual:​терминал|терминале]] с помощью команды
 <code bash>​mocp</​code>​ <code bash>​mocp</​code>​
-вы увидите знаменитый псевдографический интерфейс,​ который выглядит примерно так :+Вы увидите знаменитый псевдографический интерфейс,​ который выглядит примерно так:
  
-[[http://​help.ubuntu.ru/​_media/​wiki/​mocp_face.png|{{:​wiki:​mocp_face.png?​180}}]]\\ +[[http://​help.ubuntu.ru/​_media/​wiki/​mocp_face.png|{{ :​wiki:​mocp_face.png?​480 }}]]
-//​интерфейс mocp//+
  
-честно говоря,​ при первом запуске он будет выглядеть немного иначе, но все можно настроить по вашему вкусу, о чем речь пойдет ниже. ​сверху на приведенном скриншоте (по умолчанию в левой части) находится обозреватель файлов,​ из которого можно добавлять файлы и папки в плейлист, ​что снизу (а по умолчанию справа). ​в нижней части окна расположены индикаторы громкости,​ времени воспроизведения,​ указан текущий файл и прочая информация. +Честно говоря,​ при первом запуске он будет выглядеть немного иначе, но все можно настроить по вашему вкусу, о чем речь пойдет ниже. ​Сверхуна приведенном скриншоте(по умолчанию в левой части) находится обозреватель файлов,​ из которого можно добавлять файлы и папки в плейлист, ​который находится внизу (а по умолчанию справа). ​В нижней части окна расположены индикаторы громкости,​ времени воспроизведения,​ указан текущий файл и прочая информация. 
-управление осуществляется с клавиатуры,​ поэтому рассмотрим **основные сочетания клавиш**:​ +Управление осуществляется с клавиатуры,​ поэтому рассмотрим **основные сочетания клавиш**:​ 
-  * <​key>​h</​key>​ - показать справку по клавишам управления. ​запомнив эту клавишу,​ про все остальное можно иногда забывать :-)+  * <​key>​h</​key>​ - показать справку по клавишам управления. ​Запомнив эту клавишу,​ про все остальное можно иногда забывать :-)
   * <​key>​tab</​key>​ - переключиться между обозревателем файлов и плейлистом   * <​key>​tab</​key>​ - переключиться между обозревателем файлов и плейлистом
   * <​key>​↑</​key>,​ <​key>​↓</​key>,​ <​key>​PgUp</​key>/<​key>​PgDn</​key>,​ <​key>​Home</​key>/<​key>​End</​key>​ - навигация по списку файлов/​плейлисту   * <​key>​↑</​key>,​ <​key>​↓</​key>,​ <​key>​PgUp</​key>/<​key>​PgDn</​key>,​ <​key>​Home</​key>/<​key>​End</​key>​ - навигация по списку файлов/​плейлисту
Строка 45: Строка 50:
   * <​key>​Shift</​key>​+<​key>​q</​key>​ - выйти и завершить работу проигрывателя   * <​key>​Shift</​key>​+<​key>​q</​key>​ - выйти и завершить работу проигрывателя
  
-==== управление из командной строки ==== +==== Управление из командной строки ==== 
-проигрывателем можно управлять и без использования псевдографического интерфейса,​ напрямую из командной строки. ​обо всех опция можно почитать в+ 
 +Проигрывателем можно управлять и без использования псевдографического интерфейса,​ напрямую из командной строки. ​Обо всех опциях можно почитать в
 <code bash>man mocp</​code>​ <code bash>man mocp</​code>​
-а здесь мы лишь рассмотрим основные команды+Здесь мы лишь рассмотрим основные команды:
   * ''​mocp -G''​ - пауза/​воспроизведение   * ''​mocp -G''​ - пауза/​воспроизведение
   * ''​mocp -f'',​ ''​mocp -r''​ - следующий/​предыдущий трек   * ''​mocp -f'',​ ''​mocp -r''​ - следующий/​предыдущий трек
Строка 59: Строка 65:
   * ''​mocp -i''​ - показать подробную информацию о текущем треке   * ''​mocp -i''​ - показать подробную информацию о текущем треке
   * ''​mocp -v 40''​ - установить громкость в 40%. ''​-v +10'',​ ''​-v -3''​ - увеличить/​уменьшить на n%   * ''​mocp -v 40''​ - установить громкость в 40%. ''​-v +10'',​ ''​-v -3''​ - увеличить/​уменьшить на n%
-опции можно комбинировать ​- например,​ команда+Опции можно комбинировать
 + 
 +Команда
 <code bash>​mocp -c -a "​mp3/​new"​ -p -v 55 -o r,​s</​code>​ <code bash>​mocp -c -a "​mp3/​new"​ -p -v 55 -o r,​s</​code>​
 очистит плейлист,​ добавит в него все содержимое папки "​mp3/​new",​ установит громкость в 55%, включит Shuffle и повтор и начнет воспроизведение. очистит плейлист,​ добавит в него все содержимое папки "​mp3/​new",​ установит громкость в 55%, включит Shuffle и повтор и начнет воспроизведение.
  
-==== графическое управление ==== +==== Графическое управление ==== 
-возможность управления проигрывателем напрямую,​ без какого-либо интерфейса,​ можно использовать с применением творческого подхода. ​можно назначить команды на комбинации клавиш (или использовать мультимедиа-кнопки клавиатуры при наличии таковых),​ можно поискать (или написать) какой-нибудь плагин к чему-нибудь... я же реализовал управление плеером,​ накидав на панель вот таких кнопок:​+ 
 +Возможность управления проигрывателем напрямую,​ без какого-либо интерфейса,​ можно использовать с применением творческого подхода. ​Можно назначить команды на комбинации клавиш (или использовать мультимедиа-кнопки клавиатуры при наличии таковых),​ можно поискать (или написать) какой-нибудь плагин к чему-нибудь... я же реализовал управление плеером,​ накидав на панель вот таких кнопок:​
  
 {{:​wiki:​mocp_buttons.png}}\\ {{:​wiki:​mocp_buttons.png}}\\
 //​кнопки управления mocp на панели [[wiki:​gnome|Gnome]]//​ //​кнопки управления mocp на панели [[wiki:​gnome|Gnome]]//​
  
 +Теперь разберемся,​ как их сделать. А делаются они точно так же, как любые другие кнопки запуска.\\
 +Для Gnome: //​щелчок правой кнопкой по панели -> Добавить на панель... -> Пользовательская кнопка запуска//​ и задать команды для кнопок,​ иконки и подсказки к ним:
  
-теперь разберемся,​ как их сделать. а делаются они точно так же, как любые другие кнопки запуска. ​для Gnome это будет: //​щелчок правой ​кнопкой по панели ​-> добавить на панель -> пользовательская кнопка запуска//. далее нужно задать команды для кнопок,​ иконки и подсказки ​к ним+[[http://​help.ubuntu.ru/​_media/​wiki/​moc_button_create.png|{{:​wiki:​moc_button_create.png?​360}}]]\\ 
 +//Создание кнопки запуска.// (Самая полезная кнопка ​:-P. Чтобы слушать ​музыку, достаточно курсором перенести файл или папку на эту ​кнопку)
  
-[[http://​help.ubuntu.ru/​_media/​wiki/​moc_button_create.png|{{:​wiki:​moc_button_create.png?​180}}]]\\ +Иконки взяты из стандартного набора Gnome, вы же можете подобрать любые другие на свой вкус. Ниже приводится список команд для каждой кнопки и иконки к ним.
-//создание ​кнопки запуска//+
  
-иконки я взял из стандартного набора Gnome, ​вы же можете подобрать любые другие на свой вкус. ниже приводится список команд ​для каждой ​кнопки и иконки к ним +^ Действие ​^ Команда ​^ Путь ​к иконке ^ 
-  * **воспроизвести файл/​папку** +воспроизвести файл/​папку | mocp -c -a "​$1"​ -p -v 40 /​usr/​share/​icons/​Humanity/​emblems/​48/​emblem-sound.svg ​| 
-самая полезная кнопка :-P. чтобы слушать музычку,​ достаточно кинуть ([[wpru>​Drag-and-drop|Drag'​n'​Drop]]) файл или папку на эту кнопку\\ +предыдущий трек ​mocp -r /​usr/​share/​icons/​Humanity/​actions/​48/​gtk-media-rewind-ltr.svg ​| 
-**команда:​** ''​mocp -c -a "​$1"​ -p -v 40''​\\ +пауза/​воспроизведение ​mocp -G /​usr/​share/​icons/​Humanity/​actions/​48/​stock_media-play.svg ​| 
-**иконка:​** ''​/​usr/​share/​icons/​Humanity/​emblems/​48/​emblem-sound.svg''​ +следующий трек ​mocp -f /​usr/​share/​icons/​Humanity/​actions/​48/​gtk-media-rewind-rtl.svg ​| 
-  * **предыдущий трек** +выключить все ​mocp -x /​usr/​share/​icons/​Humanity/​actions/​48/​gtk-media-stop.svg ​| 
-**команда:​** ''​mocp -r''​\\ +текущий трек | moc-notify ​/​usr/​share/​icons/​Humanity/​actions/​48/​gtk-info.svg ​|
-**иконка:​** ''​/​usr/​share/​icons/​Humanity/​actions/​48/​gtk-media-rewind-ltr.svg''​ +
-  * **пауза/​воспроизведение** +
-**команда:​** ''​mocp -G''​\\ +
-**иконка:​** ''​/​usr/​share/​icons/​Humanity/​actions/​48/​stock_media-play.svg''​ +
-  * **следующий трек** +
-**команда:​** ''​mocp -f''​\\ +
-**иконка:​** ''​/​usr/​share/​icons/​Humanity/​actions/​48/​gtk-media-rewind-rtl.svg''​ +
-  * **выключить все** +
-**команда:​** ''​mocp -x''​\\ +
-**иконка:​** ''​/​usr/​share/​icons/​Humanity/​actions/​48/​gtk-media-stop.svg''​ +
-  * **now playing** +
-а эта кнопка ​у меня выводит вот такой popup:\\ +
-[[http://​help.ubuntu.ru/​_media/​wiki/​mocp_popup.png|{{:​wiki:​mocp_popup.png?​180}}]]\\ +
-**команда:​** ''​moc-notify''​\\ +
-**иконка:​** ''​/​usr/​share/​icons/​Humanity/​actions/​48/​gtk-info.svg''​\\ +
-тут немного сложнее,​ ибо все делается с помощью отдельного скрипта,​ о котором речь пойдет чуть ниже+
  
-вот ​таким образом и работает mocp. те, кто любит ​все ​настраивать,​ а также те, кому интересно,​ как сделать popup'​ы как ​на скрине выше - читайте следующий раздел+**Уведомления:​**\\ 
 + ​[[http://​help.ubuntu.ru/​_media/​wiki/​mocp_popup.png|{{:​wiki:​mocp_popup.png?​360}}]]\\ 
 +Тут немного сложнее, ибо все ​делается с помощью отдельного ​скрипта, о котором речь пойдет чуть ниже.
  
-===== настройка ===== +==== Интеграция с conky ==== 
-настройки программы содержатся в файле ''​.moc/​config''​. здесь мы рассмотрим основные опции:+ 
 +Для вывода строки с названием артиста и песни можно воспользоваться следующим скриптом. Не забудьте сделать файл исполняемым. 
 +<code bash> 
 +#​!/​bin/​bash 
 + 
 +. /​tmp/​mocp_popup.txt 
 +. /​tmp/​mocp_state.txt 
 + 
 +# Переменная хранит разделитель между артистом и названием 
 +# Для радио это ​как правило ' - ' 
 +SEPARATOR=" - " 
 + 
 +# Блок отвечает за формирование строк 
 +# Если в воспроизводимом файле есть http://, значит проигрыватся радио 
 +if [ $(mocp -Q %file | grep http://) ] 
 +  then 
 +    PLAYER="​Radio"​ 
 +    # Если нет названия песни 
 +    if [ -z "​$(mocp -Q %song)"​ ] 
 +      then 
 +        # Выводим адрес с которого идет проигрывание 
 +        FIRST_LINE="​RadioSite"​ 
 +        SECOND_LINE="​$(mocp -Q %file | sed '​s/​http:​\/​\///​g'​)"​ 
 +      else 
 +        # Если название песни присутствует 
 +        SONG="​$(mocp -Q %song)"​ 
 +        # Выводим артиста 
 +        FIRST_LINE="​${SONG%*$SEPARATOR*}"​ 
 +        # Выводим ​название 
 +        SECOND_LINE="​${SONG#​*$SEPARATOR*}"​ 
 +    fi 
 +  else 
 +    # Если воспроизводится не радио 
 +    PLAYER="​MoC"​ 
 +    if [ -z "​$(mocp -Q %song)"​ ] 
 +      then 
 +        # Выводим что тегов нет 
 +        FIRST_LINE="​No Title"​ 
 +        SECOND_LINE="​No Title"​ 
 +      else 
 +        # Выводим артиста 
 +        FIRST_LINE="​$(mocp -Q %artist)"​ 
 +        # Выводим название 
 +        SECOND_LINE="​$(mocp -Q %song)"​ 
 +    fi 
 +fi 
 + 
 +NEWNAME="​$FIRST_LINE - $SECOND_LINE"​ 
 +NEWNAME="​$(echo $NEWNAME | sed '​s/​\&/​And/​g'​ | sed '​s/​\`//​g'​)"​ 
 +NEWSTATE="​$(mocp --info | grep State: | awk '​{print $2}'​)"​ 
 + 
 +if [ $NEWSTATE == STOP ]; then 
 +  exit 1 
 +fi 
 + 
 +# Выводим информацию в conky 
 +if [[ $NEWSTATE == "​PLAY"​ ]]; then 
 +  echo "​$PLAYER Play:" "​$NEWNAME"​ 
 +  else 
 +    echo "​$PLAYER Stop:" "​$OLDNAME"​ 
 +fi 
 + 
 +#​======================================== Всплывающие окна ============================================================= 
 +mocp -i > /dev/null 
 +if [ $? -eq 2 ];then 
 +  exit 2 
 +fi 
 + 
 +if [[ "​$OLDNAME"​ == "​$NEWNAME"​ ]]; then 
 +  if [[ "​$OLDSTATE"​ == "​$NEWSTATE"​ ]]; then 
 +    exit 1 
 +  fi 
 +fi 
 + 
 +# Выводим информацию в всплывающее окно 
 +if [[ $NEWSTATE == "​PLAY"​ ]]; then 
 +  notify-send --expire-time=2700 -i "/​usr/​share/​icons/​Humanity/​emblems/​48/​emblem-sound.png"​ "​$PLAYER Play:" "​$NEWNAME"​ 
 +  else 
 +    notify-send --expire-time=2700 -i "/​usr/​share/​icons/​Humanity/​emblems/​48/​emblem-sound.png"​ "​$PLAYER Stop:" "​$OLDNAME"​ 
 +fi 
 +  
 +echo OLDNAME=\"​$NEWNAME\"​ > /​tmp/​mocp_popup.txt 
 +echo OLDSTATE=\"​$NEWSTATE\"​ > /​tmp/​mocp_state.txt 
 +#​======================================================================================================================= 
 +</​code>​ 
 +В конфигурационный файл **conky**, добавьте строку:​ 
 +<​code>​${scroll 45 20 ${exec путь_к_скрипту}}</​code>​ 
 +В итоге будет выводиться бегущая строка шириной в 45 символов и одновременно будет выводиться только 20 из них. 
 +===== Настройка ===== 
 + 
 +Настройки программы содержатся в файле ''​.moc/​config''​. здесь мы рассмотрим основные опции:
 <​file>​ <​file>​
 ReadTags = yes ReadTags = yes
Строка 171: Строка 258:
 # (не используйте ~, указывайте абсолютный путь) # (не используйте ~, указывайте абсолютный путь)
 </​file>​ </​file>​
-вот, в общем-то,​ и все. помимо этого есть еще множество связанных со звуком настроек,​ но если все играет,​ трогать их стоит только если вы четко понимаете,​ чего хотите добиться.\\ + 
-ниже приводится скрипт,​ отображающий popup-уведомление с данными о текущем треке:+Помимо этого есть еще множество связанных со звуком настроек,​ но если все играет,​ трогать их стоит только если вы четко понимаете,​ чего хотите добиться. 
 +\\  
 + 
 +Ниже приводится скрипт,​ отображающий popup-уведомление с данными о текущем треке: 
 <code bash> <code bash>
 #! /bin/bash #! /bin/bash
Строка 180: Строка 271:
 "​$track - $(mocp -Q ' %song'​)"​ "​$(mocp -Q '​%artist - %album'​) $(mocp -Q '​(%tt)'​)"​ "​$track - $(mocp -Q ' %song'​)"​ "​$(mocp -Q '​%artist - %album'​) $(mocp -Q '​(%tt)'​)"​
 </​code>​ </​code>​
-для корректной работы задайте значение параметра ''​FormatString''​ в ''​~/​.moc/​config''​ как в примере выше +Для корректной работы задайте значение параметра ''​FormatString''​ в ''​~/​.moc/​config''​ как в примере выше
-===== ссылки =====+ 
 +===== Ссылки ===== 
 [[http://​moc.daper.net/​|сайт проекта]]\\ [[http://​moc.daper.net/​|сайт проекта]]\\
 [[http://​sourceforge.net/​projects/​moc/​|страница проекта на SourceForge]]\\ [[http://​sourceforge.net/​projects/​moc/​|страница проекта на SourceForge]]\\
Строка 188: Строка 281:
 [[http://​sourceforge.net/​projects/​mocicon/​|mocicon,​ gtk-трей для mocp]]\\ [[http://​sourceforge.net/​projects/​mocicon/​|mocicon,​ gtk-трей для mocp]]\\
 [[http://​forum.ubuntu.ru/​index.php?​topic=76510.0|обсуждение на форуме]] [[http://​forum.ubuntu.ru/​index.php?​topic=76510.0|обсуждение на форуме]]
-{{tag>​консоль ​музыка мультимедиа ПО}}+{{tag>​консоль аудио_плеер ​мультимедиа ПО}}