Linux自学之MPD

软件开发大郭
0 评论
/
25 阅读
/
4403 字
27 2022-06
分类:

MPD简介

Music Player Daemon(以下简称MPD)是一看强大的灵活的音乐播放服务器端应用,结合mpc使用,好用的不要不要的。

1. 系统平台及准备

a) 系统平台及软件源

名称选择版本
系统平台及版本Deepin Linux 15.11(64位)桌面版
软件源阿里开源镜像站

b) 软件版本

名称选择版本命令
mpd0.19.21mpd --version
mpcmpd version: 0.19.0mpc version

注:命令包含sudo 命令开头, 表示用户临时提权; 反之表示一般用户操作.

c) 准备工作

安装系统,添加并更新软件源;
安装相应软件包:

软件名命令备注
lsofsudo apt install lsof第一步
mpdsudo apt install mpd第二步
mpcsudo apt install mpc第三步

以上

sudo apt install lsof mpd mpc

一步到位

查看帮助文档, 即man mpd、man mpc或man lsof了解常规操作;

生成必要文件及文件夹:

类型文件(夹)名创建后的绝对路径备注
d.mpdconf/home/username/.mpdconfusername为用户自己的用户名
f.mpdconf/home/username/.mpdconf/.mpdconf
fpid/home/username/.mpdconf/pid
fstate/home/username/.mpdconf/state
flog/home/username/.mpdconf/log
ddatabase/home/username/.mpdconf/database
fmpd.db/home/username/.mpdconf/database/mpd.db
dplaylists/home/username/.mpdconf/playlists
命令备注
mkdir -p ~/.mpdconf/database ~/.mpdconf/playlists
touch ~/.mpdconf/.mpdconf ~/.mpdconf/database/mpd.db ~/.mpdconf/pid ~/.mpdconf/state ~/.mpdconf/log

在配置文件(~/.mpdconf/.mpdconf)中写入如下内容, 含义请看帮助文档:

bind_to_address "127.0.0.1:6600"
music_directory    "~/Music"
playlist_directory "/home/username/.mpdconf/playlists"
db_file            "/home/username/.mpdconf/database/mpd.db"
pid_file           "/home/username/.mpdconf/pid"
state_file         "/home/username/.mpdconf/state"
log_file           "/home/username/.mpdconf/log"

audio_output {
  name "audio"
 type "alsa"
}

在配置文件中的音乐文件夹(~/Music)下放置一些音乐文件。

2. 遇到的问题

1) 无法连接或者socket端口6600被占用.

解决:
步骤1:用命令sudo lsof -i :6600查看端口使用情况;
步骤2:结果中是否存在进程号(PID)为1的进程占用mpd. 如果有,使用sudo systemctl disable mpd.service取消mpd开机自启后, 重启后重复步骤1, 如果还存在端口占用, 则修改配置文件中6600处;没有则进行下一步;
步骤3:使用kill 或 pkill命令结束mpd相关全部进程, 再次启动mpd.

mpd --no-daemon --stdout --verbose ~/.mpdconf/.mpdconf
命令启动, 观察输出信息, 直至没问题后使用命令
mpd ~/.mpdconf/.mpdconf

根据自己意愿选择添加可选项.

2) 问题1步骤1中的命令能不提权运行吗.

解: 可以的. 如果只需要在当前用户级别下查看端口使用是可以的, 但是查看当前用户级别的端口占用,有时是没有结果的;但提权至系统级后mpd进程又出现了, 神不神奇. 这就是我遇到的不提权, 在当前用户级别没有检测到6600端口占用, 但是一直提示端口被占用无法连接.

3) pid文件无法阅读或者不存在, 是必要的吗.

解: 先说该文件的必要性. 如果想使用mpd --kill结束mpd进程, 就必须用. 对于不存在或无法阅读, 先查看配置文件是否使用了pid文件, 如果使用了, 根据对应路径去查看是否还存在pid文件, 如不存在则使用touch命令创建, 文件名根据配置文件(/home/username/.mpdconf/.mpdconf)中的pid_file补充; 无法阅读则修改权限即可, 图省事就chmod 777.

3. 常用操作命令

前提 已完成安装配置,切配置合理正确.
启动及播放流程简单示意:

mpd ~/.mpdconf/.mpdconf # 启动mpd, 并加载用户配置文件
mpc update; mpc ls | mpc add; mpc playlist | cat -b # 本命令含扫描、添加、标序号为一行, 是一行, 不是一句
mpc play n # n为歌名前面的序号
命令含义
mpc current获取当前播放歌曲
mpc toggle播放/暂停
mpc stop停止播放和toggle区别还是很大的

启动

mpd ~/.mpdconf/.mpdconf

停止

mpd ~/.mpdconf/.mpdconf --kill

如果觉得输入很长的指令麻烦,可以在bash用户级配置文件中加上别名就好很多了, 比如:

alias mympd='mpd ~/.mpdconf/.mpdconf'

以后输入mympd就会执行带参数的mpd指令

    暂无数据