跳转至内容

MOC

来自 ArchWiki
(重定向自 Moc)

Music On Console (MOC) 是一款轻量级的音乐播放器,类似于 MPD。但与 MPD 不同的是,MOC 自带界面,并且其服务器不支持远程访问。

安装

安装 moc-pulseAUR。要使用 pulseaudio 驱动,请参见 #使用 PulseAudio

前端

  • mocicon — 用于控制 MOC 的 GTK 面板小程序
https://mocicon.sourceforge.net/ || mociconAUR
  • eXo — MOC 的 Qt 前端,支持歌曲统计
https://github.com/loimu/exo || exo-playerAUR

配置

首次运行 mocp 时,会创建 ~/.moc/ 目录。MOC 从文件 ~/.moc/config 读取其配置。

示例配置文件可以在 /usr/share/doc/moc/ 中找到。要进行配置,请将示例文件复制到 ~/.moc/config 并进行相应编辑。

要将 MOC 与 v4.1 OSS 一起使用,请参见 OSS#MOC

要更改默认按键绑定,请参见 /usr/share/doc/moc/keymap.example

使用 PulseAudio (Using PulseAudio)

找到变量 SoundDriver,并在其前面添加 PULSEAUDIO:

SoundDriver = PULSEAUDIO:JACK:ALSA:OSS

这可确保 PulseAudio 优先加载。将其他声音驱动程序列在此之后,以便在前面的驱动程序不可用时作为备用。

要使用箭头键更改目录,请在 ~/.moc/config 中取消注释相关行。

Keymap = keymap

编辑 ~/.moc/keymap 中的以下内容。

go    = ENTER RIGHT
go_up = U LEFT
#seek_forward  = RIGHT
#seek_backward = LEFT

要加快导航速度并分离界面,请在 ~/.moc/config 中设置以下内容。

ReadTags = no
ShowTime = no
TagsCacheSize = 0

systemd 服务

为相应的用户启用此服务。

/etc/systemd/system/moc@.service
[Unit]
Description=MOC server
ConditionPathExists=/usr/bin/mocp
After=network.target sound.target

[Service]
RemainAfterExit=yes
User=%I
ExecStart=/usr/bin/mocp -S
ExecStop=/usr/bin/mocp -x
WorkingDirectory=/home/%I/

[Install]
WantedBy=multi-user.target

Themes

播放器 GUI 有多种主题可供选择。要列出可用主题并设置一个,请使用热键 T。要将一个主题设置为永久使用,请使用配置文件 ~/.moc/config

Theme = laras_theme

/usr/share/moc/themes/ 中可以找到一系列主题示例,安装 mocp-themes-gitAUR 会添加更多主题。

由于主题只是文本文件,因此很容易创建新的主题。用户自定义主题应放在 ~/.moc/themes/ 中。

示例主题文件

background                     = white black
frame                          = white black
window_title                   = white black
directory                      = white black
selected_directory             = white black reverse
playlist                       = white black
selected_playlist              = white black reverse
file                           = white black
selected_file                  = white black reverse
selected_info                  = white black reverse
marked_file                    = white black bold
marked_selected_file           = white black reverse
info                           = white black
marked_info                    = white black bold
marked_selected_info           = white black reverse
status                         = white black
title                          = white black bold
state                          = white black
current_time                   = white black bold
time_left                      = white black bold
total_time                     = white black bold
time_total_frames              = white black
sound_parameters               = white black bold
legend                         = white black
disabled                       = white black
enabled                        = white black bold
empty_mixer_bar                = white black
filled_mixer_bar               = white black reverse
empty_time_bar                 = white black
filled_time_bar                = white black reverse
entry                          = white black
entry_title                    = white black
error                          = white black bold
message                        = white black
plist_time                     = white black

用法

运行 mocp 来启动服务器和界面。一些有用的默认快捷键(按 h 查看更多)。

在此文件处开始播放或转到此目录 Enter
Pause 空格键p
播放下一个文件 n
播放上一个文件 b
静音快进 5 秒 ]
静音快退 5 秒 [
在播放列表和文件列表之间切换 Tab
将文件/目录添加到播放列表 a
递归地将目录添加到播放列表 Shift+a
从播放列表中删除项目 d
清空播放列表 Shift+c
音量增加 1% >
音量减少 1% <
音量增加 5% . (句点)
音量减少 5% , (逗号)
将音量设置为 10% Alt+1
将音量设置为 90% Alt+9
将 MOC 与服务器分离 q
退出 Shift+q
提示 要避免等待分离(有时需要一点时间),可以使用 Ctrl+z 代替。

要关闭服务器,请运行 mocp -x 命令。

Scrobbling (歌曲统计)

mocp-scrobblerAUR 是一个适用于 MOC 的 Last.fm(和 Libre.fm)歌曲统计工具,支持“正在播放”通知、守护进程化和缓存。它仅依赖于 Python 3。

注意 要使用 Libre.fm 而非 Last.fm,请将 hostnamepost.audioscrobbler.com 更改为 turtle.libre.fm

将示例文件复制到您的用户配置文件目录。

mkdir ~/.mocpscrob/
cp /usr/share/doc/mocp-scrobbler/config.example  ~/.mocpscrob/config

编辑 ~/.mocpscrob/config 以添加您的登录名和密码。在首次运行时,密码变量将被替换为 password_md5。其值将是使用 MD5 算法哈希后的原始值。如果要更改密码,只需再次添加您的新密码,password_md5 将被更新。

要统计歌曲,请在启动 mocp 之前以守护进程模式启动 mocp-scrobbler。您也可以使用 别名

alias mocp='/usr/bin/mocp-scrobbler.py -d; mocp'

2016 年 1 月,Last.fm 更新了其密码要求,所有新密码和更新后的密码都必须包含以下字符之一 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~,或空格。已知这会导致 mocpscrob 配置中不符合这些新规范的密码出现认证错误。更改密码并相应更新 ~/.mocpscrob/config 中的密码可以解决此问题。

故障排除

MOC 启动失败 (MOC fails to start)

如果 MOC 启动失败,很可能是因为 ~/.moc/ 中的某些配置有误。您可以尝试修复它,或者直接删除整个文件夹。

乱码 (Strange characters)

如果您看到显示的字符不是正常的线条(用于分隔空间的竖线等),而是乱码,则您使用的字体可能与 MOC 不兼容。请更改相应的字体,或编辑 .moc/config 以使用 ASCII 字符绘制线条。

ASCIILines = no

致命错误: Layout1 格式错误 (FATAL_ERROR: Layout1 is malformed)

如果 MOC 崩溃并出现此错误,请尝试在 .moc/config 中添加以下任一行。

Layout1 = directory(0,0,50%,100%): playlist(50%,0,100%,100%)

或者

Layout1 = directory(0,0,50%,100%): playlist(50%,0,FILL,100%)

请参见 原始报告Debian 错误报告

蓝牙在 MOC 启动前未连接则无法工作 (Bluetooth not working unless it is connected before MOC is started)

当使用 pipewire 时,MOC 默认使用 JACK,这似乎是导致此问题的原因。通过更改配置文件中的以下值,将声音驱动从 jack 更改为 ALSA 可以解决此问题。

默认值

JACK:OSS:ALSA

新值

ALSA:OSS:JACK

MOC 会选择第一个能工作的音频驱动程序,因此 ALSA 将被优先选择。这应该可以解决蓝牙问题。

参见