Linux自学之MPD

Linux自学之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) 准备工作

  1. 安装系统,添加并更新软件源;
  2. 安装相应软件包:
软件名命令备注
lsofsudo apt install lsof第一步
mpdsudo apt install mpd第二步
mpcsudo apt install mpc第三步
以上sudo apt install lsof mpd mpc一步到位
  1. 查看帮助文档, 即man mpdman mpcman lsof了解常规操作;
  2. 生成必要文件及文件夹:
类型文件(夹)名创建后的绝对路径备注
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
  1. 在配置文件(~/.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"
} 
  1. 在配置文件中的音乐文件夹(~/Music)下放置一些音乐文件。

2. 遇到的问题

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

解: 全程使用mpd --no-daemon --stdout --verbose ~/.mpdconf/.mpdconf命令启动, 观察输出信息, 直至没问题后使用命令mpd ~/.mpdconf/.mpdconf根据自己意愿选择添加可选项.
步骤1:用命令sudo lsof -i :6600查看端口使用情况;
步骤2:结果中是否存在进程号(PID)为1的进程占用mpd. 如果有,使用sudo systemctl disable mpd.service取消mpd开机自启后, 重启后重复步骤1, 如果还存在端口占用, 则修改配置文件中6600处;没有则进行下一步;
步骤3:使用kill 或 pkill命令结束mpd相关全部进程, 再次启动mpd.

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

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

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

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

3. 一波骚操作

前提 已完成安装配置,切配置合理正确.
启动及播放流程简单示意:
步骤1: mpd ~/.mpdconf/.mpdconf # 启动mpd, 并加载用户配置文件
步骤2: mpc update; mpc ls | mpc add; mpc playlist | cat -b # 本命令含扫描、添加、标序号为一行, 是一行, 不是一句
步骤3: mpc play n # n为歌名前面的序号

在这里插入图片描述

命令含义
mpc current获取当前播放歌曲
mpc toggle播放/暂停
mpc stop停止播放和toggle区别还是很大的

每次输入mpd ~/.mpdconf/.mpdconf启动, mpd ~/.mpdconf/.mpdconf --kill结束, 是很费事的. 可以在bash用户级配置文件中加上别名就好很多了, 比如:
alias mpd='mpd ~/.mpdconf/.mpdconf'
红框部分即是别名生成

结语

本文图片少,感觉可能是不需要,如有朋友添加图片后觉得必要的,可找我添加链接,告知入坑者图文教程处。理论指导实践,实践后再总结出适合自己的理论。之后,在不断地尝试和总结过程中才能知道,学会放弃有多重要……由于自身还有很多不足,未能面面俱到,所以不足之处(不算错别字),欢迎温柔地指出。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值