在完成了用我的 Raspberry Pi 控制我的圣诞树灯的项目之后,我的下一个项目会是什么呢? 我最终决定尝试 Pi Musicbox,它是基于 Raspbian 和 Mopidy 的一个发行版,它允许用户在“无头” Raspberry Pi 上播放各种流媒体服务(如 Spotify、TuneIn、SoundCloud)和本地声音文件。
在本指南中,我将展示我为使 Pi MusicBox 达到我的满意程度所做的一些工作,以及我仍在处理的一些问题。
硬件
- Raspberry Pi B+
- Mini SD 卡和 SD 适配器
- 以太网线
- AmazonBasics USB 供电电脑扬声器
注意:当使用我的 Cana Kit Wi-Fi USB Dongle 时,我遇到了缓冲问题,所以我直接插入了我的路由器的以太网端口之一。
参考资料
安装
我要做的第一件事是从我的 Fedora 21 笔记本电脑将 MusicBox 镜像 “dd” 到我的 mini SD 卡上
sudo dd bs=1M if=musicbox0.5.2.img of=/dev/mmcblk0
复制完镜像后,我使用
SD 卡适配器在我的 Fedora 笔记本电脑上挂载 mini SD 卡,以修改 MUSICBOX
分区中的 config/settings.ini
文件。在该文件中,您可以设置服务器的 root 密码、启用 SSH、设置 Wi-Fi 以及配置您的 Spotify 帐户* 等。 在将更改保存到 settings.ini
后,我卸载了我的卡并将其插入 Pi。 一旦启动,我就可以从我的笔记本电脑访问 http://192.168.1.30/
(我的路由器分配给我的 Pi 的 IP 地址)。
*您需要 Spotify Premium 帐户才能通过 Pi MusicBox 使用。
配置
如果您想让您的设置更高级,这可能是项目中花费您最多时间的部分。 在我的例子中,我想让我 Mac 上的歌曲可以通过 Pi 播放。 我在我的 Mac 上共享了一个音乐文件夹,并将该共享挂载到 Pi 上。 MusicBox 在 settings.ini
中有一组选项,允许您输入 Samba 共享信息以供系统扫描,但我无法让它与来自 Mac 的共享一起工作。 相反,我编辑了 Pi 上的 /etc/fstab
并添加了
//192.168.1.79/music /mnt/music cifs
username=myusername,password=mypassword,nounix,sec=ntlmssp,noperm,rw 0 0
我的猜测是 MusicBox 尝试挂载 samba/cifs
共享时没有使用 sec=ntlmssp
选项,而该选项是必需的,才能在 Linux 中挂载来自 Mac OS X 主机的共享(再次说明,这只是一个猜测)。
注意:我将上述内容挂载在 /mnt/music
上。 我必须修改 /etc/mopidy/mopidy.conf
文件。 我必须将 media_dir
设置为 /mnt/music
如果您没有 Spotify Premium 订阅(我没有),MusicBox 将只在 Web 界面上旋转,什么都不会发生。 我最终找到了应用程序的日志,并注意到当 Mopidy 启动时,它说非 Premium 帐户无法访问我尝试访问的内容。
Musicbox 上 Mopidy 的日志位置是:/var/log/mopidy/mopidy.log
请记住在 settings.ini
上启用 SSH 并设置 root 密码(如前所述),以便您可以访问日志文件。
本地电台
我最喜欢的 MusicBox 功能之一是它与 TuneIn 交互的能力,这使您可以收听本地电台。
问题
尽管我在设置这个过程中玩得很开心,但我还是遇到了一些问题。 其中一些可能是我自己造成的,另一些可能与 Mopidy 本身有关,但在这一点上,我只是将它们视为问题。 因此,这只是为了提供信息,而不是批评这个项目。
settings.ini
上的 Samba 配置似乎不适用于 OS X 共享。- 通过 Wi-Fi(至少使用 Cana Kit Wi-Fi Dongle)从 Samba 共享进行流式传输不太有效。 缓冲太多。
- 除非系统重启,否则本地文件刷新似乎不起作用。
我尝试运行 mopidy local scan
以强制文件扫描,但它总是失败,并出现错误:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4560: ordinal not in range(128)
- 当我尝试扫描 Samba 共享上的数千个文件时,我在
mopidy.log
上遇到了与上面相同的错误。 我将文件减少到大约 480 个,并确保只有包含 “ascii” 字符的文件可用,然后我的本地文件就出现在 Web 界面上。 - 手动重启(或停止然后启动)Mopidy 似乎也不会触发本地文件扫描。
总结
这是又一个很棒的 Raspberry Pi 午后项目。 我现在拥有一个可以通过 Web 界面远程访问的音乐/电台流媒体服务。 它不需要显示器、电视、键盘或鼠标。 我只需要网络连接和一些扬声器。
硬件
连接
本文是 Rikki Endsley 协调的开放硬件连接专栏的一部分。 通过发送电子邮件至 open@opensource.com,分享您关于不断发展的开放硬件社区以及来自世界各地创客和修补匠的精彩项目的故事.
2 条评论