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

时间:2013-03-27 12:42:34

标签: linux bash embedded-linux audio-player

我正在尝试将本地文件添加到mpd(通过mpc)并播放它。我的平台是OpenWRT嵌入式Linux。

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

mpc add <file>   Add a song to the current playlist

如果我这样做:

root@OpenWrt:~/.mpd# mpc add /usr/share/baresip/ring.wav 
error adding /usr/share/baresip/ring.wav: directory or file not found

或者如果我这样做:

root@OpenWrt:~/.mpd# mpc add file:///usr/share/baresip/ring.wav 
error adding file:///usr/share/baresip/ring.wav: Access denied

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

2 个答案:

答案 0 :(得分:6)

你的第二次尝试几乎正确。您遇到的问题是mpd只允许file:个网址通过本地连接传递给它,它通过要求您连接其 unix-domain套接字。因此,在您的mpd.conf中,您需要有这样的一行:

bind_to_address     "/run/mpd/socket"

(根据您的系统,您可能希望将/run更改为/var/run - 我引用的版本对于最新版本的debian或ubuntu是正确的,但其他版本可能不同。)

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

export MPD_HOST=/run/mpd/socket

执行此操作时,mpc addmpc insert可以成功接受file:网址:

$ 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
$

答案 1 :(得分:4)

我没有找到如何玩wav ..但我忘记了我找到了解决方案(对于mp3)并在此处发布:https://forum.openwrt.org/viewtopic.php?id=41022

然而,由于stackoverflow总是显示在谷歌搜索的顶部,我在这里粘贴相同的解决方案,以防它也帮助了某人:

/etc/mpd.conf应该是这样的:

music_directory        "/tmp"
playlist_directory        "~/.mpd/playlists"
db_file            "~/.mpd/database"
log_file            "/tmp/mpdlog"
pid_file            "~/.mpd/pid"
state_file            "~/.mpd/state"
sticker_file            "~/.mpd/sticker.sql"

user                "root"
group                "root"
bind_to_address "127.0.0.1"


log_level            "verbose"
auto_update    "yes"
auto_update_depth "3"
follow_outside_symlinks    "yes"
follow_inside_symlinks        "yes"

然后:

  1. /etc/init.d/mpd restart
  2. 将MP3(wav似乎无法正常工作)文件复制到/ tmp文件夹(因为音乐目录是/ tmp文件夹)
  3. mpc update
  4. mpc add file.mp3(添加/tmp/file.mp3不起作用)
  5. mpc play