文档章节

OSX 下安装使用控制台音乐播放器 mocp

FreeBlues
 FreeBlues
发布于 2014/08/14 11:47
字数 1740
阅读 341
收藏 0

OSX 下安装使用控制台音乐播放器 mocp

目录


mocp 简介

mocp 是一款开源的基于控制台的音乐播放器,也就是说在文本字符界面下使用的音乐播放器,支持 MP3 等音乐格式,也支持直接播放来自网络上的音乐文件,占用资源少,使用方便。

mocp 安装设置

Linux 平台下 mocp 跟开源的声卡驱动 alsa 配合默契,直接安装就可以使用,不过貌似现在 alsa 不支持 OSX 平台,所以需要做一些额外的配置。

首先,使用 homebrew 来安装 mocp,好处是会自动把各种依赖包安装好,坏处是直接安装好的用不了,需要进行手动设置:

brew install mocp

执行这个命令会自动安装一大堆依赖包(这也正是我们的真正目的),安装完毕之后,需要手动下载 mocp 源码,然后根据我们的参数编译,mocp 的下载地址在这里:

http://moc.daper.net/download

我们选择了尚在开发中的 beta2 进行下载:

http://ftp.daper.net/pub/soft/moc/unstable/moc-2.5.0-beta2.tar.bz2

假设下载到 ~/Downloads/ 目录,解压:

% cd ~/Downloads
% tar xvjf moc-2.5.0-beta2.tar.bz2
% cd moc-2.5.0-beta2

接着是编译的具体命令,如下:

% ./configure --prefix=/usr/local/Cellar/moc/2.5.0-beta2 --with-jack --with-ncurses --enable-debug --without-ffmpeg
% make
% make install

说明:虽然 mocp 提示说如果想支持中文就需要加上 --with-ncurses 参数,但是我发现好像不起作用,仍然无法正常显示中文歌曲名,不知是否我的其他配置有问题。不过可以正常播放。

现在就安装好了,接下来就是对 mocp 的配置了。

先设置路径,如果使用 bash ,就需要在 .bashrc 文件增加如下语句:

PATH=/usr/local/Cellar/moc/2.5.0-beta1/bin:$PATH

接着配置界面主题文件:

% mkdir ~/.moc

% mkdir ~/.moc/themes	

% vim ~/.moc/themes/rhowaldt_theme

把如下内容拷入:

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

接着修改配置文件 config,先拷贝一个样本过来:

% cp /usr/local/Cellar/moc/2.5.0-beta2/share/doc/moc/config.example ~/.moc/config

编辑该文件:

% vim ~/.moc/config

加入如下内容(当然要根据你的实际配置来写,下文是我的配置):

ReadTags = yes
MusicDir = /Users/Admin/Music
StartInMusicDir = yes
SoundDriver = JACK
XTerms = xterm-256color
Theme = rhowaldt_theme
MOCDir = ~/.moc
UseRCC = no

剩下的就是如何运行 mocp 了,需要先把 jack 作为守护进程运行起来,jack 一般是把 alsa 作为默认的声卡驱动的,所以在 OSX 上如果直接运行 jack 会报错,需要我们手动指定生声卡驱动这样来运行:

% jackd -d coreaudio

但是每次这样做就太麻烦了,所以,我们借助 OSX 的命令 launchctl 来设置一个自动启动的守护进程,具体操作步骤如下:

% vim ~/Library/LaunchAgents/org.jackaudio.jackd.plist

写入内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Label</key>
		<string>org.jackaudio.jackd</string>
		<key>WorkingDirectory</key>
		<string>/Users/Admin/</string>
		<key>ProgramArguments</key>
		<array>
  			<string>/usr/local/Cellar/jack/0.241.1/bin/jackd</string>
  			<string>-d</string>
  			<string>coreaudio</string>
		</array>
		<key>EnableGlobbing</key>
		<true/>
		<key>RunAtLoad</key>
		<true/>
		<key>KeepAlive</key>
		<true/>
	</dict>
</plist>

需要注意的有两个地方,一个是 /Users/Admin/,一个是 /usr/local/Cellar/jack/0.241.1/bin/jackd,一定要跟你的系统中的一致。

launchctl load ~/Library/LaunchAgents/org.jackaudio.jackd.plist

小技巧:如果写错了想要再次执行该命令会提示已经加载,这时可以先卸载掉,也就是 unload,完整命令如下:

launchctl unload ~/Library/LaunchAgents/org.jackaudio.jackd.plist

现在就可以正常运行我们的 mocp 了!

mocp 使用命令

因为这是一款基于控制台的播放器,所以就没有图形界面,需要我们熟悉一下它的快捷操作命令,首先记住最关键的一个--调出帮助,里面包括所有的快捷命令键(注意,大小写对应不同命令):

h 键,也就是在启动 mocp 后,按下 h 即可,再按一次取消帮助界面

最常用快捷键:

mocp——启动进入播放器

q——退出播放器,后台播放

Q——彻底关闭播放器

上下键——选择歌曲

Enter——播放选定歌曲

s——停止播放

p或者是空格——暂停/播放

音量控制:

,——减小音量
.——增大音量

播放列表:

a——将左面音乐加入到右边的播放列表
Tab键——进入右边的播放列表
d——从右边的播放列表移除歌曲

终端下的命令行参数:

mocp [options] [FILE]
-V 版本
-h 帮助信息
-D 错误信息
-S 仅仅使用服务端
-F 切换到前台播放
-R 切换音效
-m 切换到播放界面
-a 将歌曲添加到播放列表
-c 清除播放列表并退出
-f 切换到下一首歌曲
-r 切换到上一首歌曲
-p 
-l 
-x 结束mocp进程
-T 选择皮肤
-M 使用指定的文件夹,而不用默认的
-P 暂停播放
-U 取消暂停
-G 暂停/播放
-y 与其他客户端同步播放列表
-n 取消和其他客户端的播放列表同步
-i 输出当前曲目的相关信息

在终端下执行 mocp 可以进入主界面,主界面里的完整快捷键:

g or \:搜索
a:添加到播放列表
o:输入URL
s:停止
p:暂停
Enter:播放
l:关闭播放列表窗口
x:切换到音量调整,按,.调整音量
b:上一首歌曲
n:下一首歌曲
ESC:退出搜索
q:切换到后台播放,可关闭终端窗口
up:上
down:下
left:后退歌曲进度
right:前进歌曲进度

mocp可以在后台进行播放,也就是你关闭终端,音乐还依然会继续播放!

如果使用命令 q 在终端下退出了 mocp 的主界面,可以通过命令来彻底关闭它:

mocp -x

也可以使用如下命令重新呼出主界面:

mocp -m

解决中文乱码问题:

首先需要安装id3v2:

brew install id3v2

安装好之后执行如下命令来转换编码:

find ~/Music/ -type f -exec id3v2 -D {} \;    

说明:~/Music/ 为我的系统下音乐文件夹,你可以根据自己的实际情况进行修改。

我习惯在 tmux 下运行 mocp,这样在我的 LinuxOSX 上就会有一致的操作界面,OSX 的截图如下:

在此输入图片描述

参考:

MOC on OSX
mocp 终端下的音乐播放器

© 著作权归作者所有

共有 人打赏支持
FreeBlues
粉丝 98
博文 280
码字总数 493678
作品 0
其它
程序员
私信 提问
macOS Sierra 发布:Siri 来了、云剪贴板、Apple Pay

苹果在今天举行的 WWDC 发布会上,正式宣布 OS X 更名为 macOS,并发布了 macOS Sierra。macOS Sierra 主打功能之一就是 Siri for Mac, Siri 会让电脑变得更智能。此外,macOS Sierra 还可以...

oschina
2016/06/14
4.4K
7
XBMC 12.2 发布,XBox 媒体中心

XBMC12.2发布! 来自XBMC官方的消息,在XBMC 12.1发布大约一个半月后, XBMC 12.2发布了,包含了12.1和12.0后续的补丁和改进: 修复插件依赖无限循环的问题, 解决12.1程序奔溃的问题 多个UPnP补...

段永明
2013/05/09
3.4K
1
Python 编写的跨平台音乐播放器 - FeelUOwn

FeelUOwn 是一个符合 Unix 哲学的跨平台的音乐播放器,主要面向 Linux/macOS 用户。 特性 安装简单,新手友好 默认提供国内各音乐平台插件(网易云、虾米、QQ) 较强的可扩展性可以满足大家折...

Cosven
2015/09/22
0
1
苹果更新 XProtect,遮蔽最新 Leverage 恶意软件变种

2013年,有安全研究人员发现了 OSX/Leverage 恶意软件。现在,一种 OSX/Leverage 恶意软件变种又被发现,苹果则第一时间更新了 XProtect 恶意软件规则,将版本更新至 2093。这次升级提供了 ...

局长
2017/07/30
491
1
elementary OS 可能是 Linux 走向主流的最佳希望?

我们天天都在用 Linux,但大部分人认识不到这一点,原因是 Linux 唯一没有征服的领域是桌面,而大部分人接触的桌面或者是 Windows 或者是 macOS,即使 Linux 统治了物联网、移动和数据中心,...

局长
2018/12/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端、后端和全栈到底不该学什么

1、前言 在职业规划咨询过程中经常会被问到这样的问题: 老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师? 类似问题的变种还有,老师我是不是该30岁最迟...

前端攻城小牛
29分钟前
3
0
【git命令】git-stash

应用场景 应用场景:使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们...

echojson
30分钟前
2
0
centos7.3编译安装OpenSSL1.1.1b

简介 OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 安装 下载:下载地址 ...

阿dai学长
32分钟前
1
0
0基础【转行】大数据

目前大数据行业异常火爆,不少人都对大数据充满了兴趣,其中有大部分人都是之前没有接触过计算机技术的,对编程语言也不太了解,那是不是这部分零基础的朋友就学不了大数据了呢?答案当然是否...

董黎明
33分钟前
1
0
Krpano 动态传参-action

效果解释:点击热点1,触发显示或隐藏热线2。 hotspot等标签允许编写自定义属性,这里直接设置自定义属性为dk=spot6,点击spot7,显示或隐藏spot6。 action方法体中,直接引用get(dk)即可获得...

华山猛男
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部