linux上的mpc/mpd:如何播放本地wav文件

Shr*_*han 3 linux bash embedded-linux audio-player

我试图将一个本地文件添加到mpd(通过mpc)并播放它.我的平台是OpenWRT嵌入式linux.

所以,从手册页中可以看出:

mpc add <file>   Add a song to the current playlist
Run Code Online (Sandbox Code Playgroud)

如果我做:

root@OpenWrt:~/.mpd# mpc add /usr/share/baresip/ring.wav 
error adding /usr/share/baresip/ring.wav: directory or file not found
Run Code Online (Sandbox Code Playgroud)

或者如果我这样做:

root@OpenWrt:~/.mpd# mpc add file:///usr/share/baresip/ring.wav 
error adding file:///usr/share/baresip/ring.wav: Access denied
Run Code Online (Sandbox Code Playgroud)

这里的语法究竟是什么?对于mpc/mpd,手册页真的不太清楚.

Jul*_*les 6

你的第二次尝试几乎是对的.您遇到的问题是mpd只允许file:通过本地连接将URL传递给它,它通过要求您在其unix域套接字上进行连接来强制执行.所以,mpd.conf你需要有一条这样的线:

bind_to_address     "/run/mpd/socket"
Run Code Online (Sandbox Code Playgroud)

(根据你的系统,你可能要更改/run/var/run-我引用的版本是最新版本的Debian或Ubuntu的正确的,但其他人可能会有所不同).

然后,您需要将环境设置为指向该套接字:

export MPD_HOST=/run/mpd/socket
Run Code Online (Sandbox Code Playgroud)

当你这样做,mpc add或者mpc insert可以成功接受一个file:URL:

$ mpc insert "file:///data/incoming/files/111_scorpions_-_the_zoo.mp3"
$ mpc next
Scorpions - The Zoo
[playing] #23/39   0:00/5:30 (0%)
volume: n/a   repeat: off   random: off   single: off   consume: off
$
Run Code Online (Sandbox Code Playgroud)