使用 Pi MusicBox 收听流媒体音乐

还没有读者喜欢这篇文章。
open hardware devices

Opensource.com

在完成了用我的 Raspberry Pi 控制我的圣诞树灯的项目之后,我的下一个项目会是什么呢? 我最终决定尝试 Pi Musicbox,它是基于 RaspbianMopidy 的一个发行版,它允许用户在“无头” Raspberry Pi 上播放各种流媒体服务(如 Spotify、TuneIn、SoundCloud)和本地声音文件。

在本指南中,我将展示我为使 Pi MusicBox 达到我的满意程度所做的一些工作,以及我仍在处理的一些问题。

硬件

注意:当使用我的 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 使用。

 Pi MusicBox Web Interface

配置

如果您想让您的设置更高级,这可能是项目中花费您最多时间的部分。 在我的例子中,我想让我 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,分享您关于不断发展的开放硬件社区以及来自世界各地创客和修补匠的精彩项目的故事.

User profile image.
Anderson 在 1996 年由他的叔叔介绍接触了 Linux。 在 2000 年代初期,他从开发人员转型为系统管理员。 今天,Anderson 领导着红帽信息安全事件响应团队。 他还是 Fedora 软件包的活跃维护者。

2 条评论

Anderson,

这是一个非常酷的 Raspberry Pi 项目。

非常感谢您的分享,以及非常详细的说明。

嗨,只是想知道在哪里可以更改命令,将曲目排队作为主点击而不是立即播放?

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.