MOC
Music On Console (MOC) 是一款轻量级的音乐播放器,类似于 MPD。但与 MPD 不同的是,MOC 自带界面,并且其服务器不支持远程访问。
安装
安装 moc-pulseAUR。要使用 pulseaudio 驱动,请参见 #使用 PulseAudio。
前端
- mocicon — 用于控制 MOC 的 GTK 面板小程序
- eXo — MOC 的 Qt 前端,支持歌曲统计
配置
首次运行 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
|
| 递归地将目录添加到播放列表 |
|
| 从播放列表中删除项目 | d
|
| 清空播放列表 |
|
| 音量增加 1% | >
|
| 音量减少 1% | <
|
| 音量增加 5% | . (句点) |
| 音量减少 5% | , (逗号) |
| 将音量设置为 10% | Alt+1
|
| 将音量设置为 90% | Alt+9
|
| 将 MOC 与服务器分离 | q
|
| 退出 |
|
Ctrl+z 代替。要关闭服务器,请运行 mocp -x 命令。
Scrobbling (歌曲统计)
mocp-scrobblerAUR 是一个适用于 MOC 的 Last.fm(和 Libre.fm)歌曲统计工具,支持“正在播放”通知、守护进程化和缓存。它仅依赖于 Python 3。
hostname 从 post.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 将被优先选择。这应该可以解决蓝牙问题。