Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
wiki:mocp [2010/09/09 23:32] создано |
wiki:mocp [2012/01/29 02:27] [Интеграция с 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}')" | ||
+ | |||
+ | # Выводим информацию в 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 "/home/citizen/.icons/MyIcons/emblem-sound.png" "$PLAYER Play:" "$NEWNAME" | ||
+ | else | ||
+ | notify-send --expire-time=2700 -i "/home/citizen/.icons/MyIcons/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: | Строка 254: | ||
# (не используйте ~, указывайте абсолютный путь) | # (не используйте ~, указывайте абсолютный путь) | ||
</file> | </file> | ||
- | вот, в общем-то, и все. помимо этого есть еще множество связанных со звуком настроек, но если все играет, трогать их стоит только если вы четко понимаете, чего хотите добиться.\\ | + | |
- | ниже приводится скрипт, отображающий popup-уведомление с данными о текущем треке: | + | Помимо этого есть еще множество связанных со звуком настроек, но если все играет, трогать их стоит только если вы четко понимаете, чего хотите добиться. |
+ | \\ | ||
+ | |||
+ | Ниже приводится скрипт, отображающий popup-уведомление с данными о текущем треке: | ||
<code bash> | <code bash> | ||
#! /bin/bash | #! /bin/bash | ||
Строка 180: | Строка 267: | ||
"$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: | Строка 277: | ||
[[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>консоль аудио_плеер мультимедиа ПО}} |