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,手册页真的不太清楚.
你的第二次尝试几乎是对的.您遇到的问题是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)