4

我正在尝试将本地文件添加到 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 真的不是很清楚。

4

2 回答 2

9

你的第二次尝试几乎是正确的。您遇到的问题是,mpd它只允许file:通过本地连接将 URL 传递给它,它通过要求您连接它的unix-domain socket来强制执行。所以,在你的mpd.conf你需要有这样的一行:

bind_to_address     "/run/mpd/socket"

(取决于您的系统,您可能想要更改/run/var/run- 我引用的版本对于 debian 或 ubuntu 的最新版本是正确的,但其他版本可能不同)。

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

export MPD_HOST=/run/mpd/socket

当你这样做时,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
$
于 2016-06-04T15:55:17.600 回答
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 重启
  2. 将 MP3(wav 似乎不起作用)文件复制到 /tmp 文件夹(因为音乐目录是 /tmp 文件夹)
  3. mpc 更新
  4. mpc 添加 file.mp3(添加 /tmp/file.mp3 将不起作用)
  5. mpc 播放
于 2013-03-31T08:21:54.457 回答