×

7个步骤让Raspberry Pi播放音乐(源代码)

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-21

分享资料个

李·道斯韦特

您现有的 hifi 系统是否太旧而无法支持 Apple AirPlay?不想用质量较低的无线扬声器替换它,但又想播放音乐?这是一个常见的问题。好消息是,您可以用 Raspberry Pi 的成本构建一个 AirPlay 服务器,这样您就可以将音乐直接从 iPhone 或 iPad 流式传输到您的 hifi 系统。

本指南向您展示了如何设置,shairport-sync以便通过 7 个简单的步骤让 Raspberry Pi 播放音乐。

在你开始前

在将 Raspberry Pi 设置为 AirPlay 服务器之前,您需要做一些事情。

选择树莓派

你可能已经有一个了。大多数模型都应该可以工作,但 Pi Zero 将是一个问题,因为在 Zero 上建立网络更加困难。我建议您在开始之前使用谷歌搜索以了解如何执行此操作。

如果你有一个零 W 模型,那么事情会更容易,只要你没有任何其他重型东西在运行,那里的单核 CPU 就可以很好地进行流式传输。

如果您要购买新车,我建议您购买 Model 3。我使用 Model 3 A+ 没有任何问题,因为我想要更小的外形、wifi 和足够的噪音。Raspberry Pi 3 Model B的性能同样出色。

选择操作系统

您需要的第一件事是带有适当操作系统的 SD 卡。现在有很多不同的选择,从“传统的”Raspbian 到专用的媒体操作系统,甚至是 Windows 10 IoT。

现在,AirPlay 服务器不像 Kodi 那样需要丰富的图形界面。完全可以在没有 UI 的情况下运行它,因为所有用户交互都将在 iOS 或 macOS 设备上完成。拥有某种显示当前艺术家和曲目信息的显示器可能会很好,但这是一个非常艰巨的目标。现在,集中精力让服务器正常工作!

因此,随着这一点的建立,您应该寻找一个更准系统的系统。不需要大量的应用程序,为了实现无故障操作,您希望运行的进程越少越好。这是为媒体流应用程序保留尽可能多的 CPU 和 RAM。

一个问题是一些准系统操作系统,例如 Arch Linux,是针对具有相当多 Linux 知识的人。它们非常先进,您在安装第三方应用程序和库时更有可能遇到问题。

在光谱的另一端,有一些专用于此任务的发行版,应该开箱即用,但您不会从中学到任何东西。

出于这些原因,如果这是您第一次安装 AirPlay 设备,我建议您选择 Raspbian Lite。它是成熟的,因为它源自原始的 Raspbian 操作系统,但它已经删除了 GUI 以节省资源。它完全由命令行驱动,可以轻松配置为以“无头”模式运行,即无需键盘或显示器即可通过网络完全远程访问。这使得它非常适合放入设备中,希望您能在此过程中学到一些东西。

安装 Raspbian Lite 并启用 SSH

如果您已经进行了安装,或者有信心自己完成该部分,请继续。

否则请按照下面的教程进行操作,该教程将带您逐步从原始 Raspberry Pi 到支持 SSH 的 Raspbian Lite:-

如何在 30 分钟内设置您可以从任何地方控制的 Raspberry Pi

设置完成后,您应该能够从网络上的另一台计算机远程登录 Raspberry Pi,并且您的 Pi 应该可以访问互联网。

配置 AirPlay 服务器

首先,您需要安装一些依赖项,以便构建 AirPlay 服务器应用程序。运行以下命令:-

sudo apt-get update sudo apt-get install autoconf automake avahi-daemon build-essential git libasound2-dev libavahi-client-dev libconfig-dev libdaemon-dev libpopt-dev libssl-dev libtool xmltoman

2. 构建并安装 shairport-sync

shairport-sync是由Mike Brady维护的一款很棒的软件。它将您的 Linux 机器变成 Apple AirPlay 服务器。它最好的事情之一是它完全在命令行上运行,虽然它有上百万个配置选项,但开箱即用非常容易。

首先从 github 上抓取它:-

git clone https://github.com/mikebrady/shairport-sync.git

现在导航到shairport-sync目录并配置构建:-

cd shairport-sync autoreconf -i -f ./configure --with-alsa --with-avahi --with-ssl=openssl --with-systemd --with-metadata

最后构建并安装应用程序:-

make sudo make install

在此过程结束时,您应该可以正常安装shairport-sync.

3.配置音频输出

您现在可以测试 Airplay 音频了。首先你需要一些硬件。以下任何一项都有效:-

耳机,或任何带有 3 毫米插孔的旧耳塞

来自台式电脑的有源扬声器

或者,如果您是认真的,可以使用带有电缆的高保真放大器,该电缆可将 3.5 毫米插孔转换为一对 RCA 唱机插头

现在您需要在 Raspberry Pi 上配置音频路径。它通常设置为“自动”,但您需要强制它连接到 3.5 毫米插孔。运行raspi-config:-

sudo raspi-config

选择7. Advanced Options ,然后选择A4。Audio ,然后选择选项1. Force 3.5mm ('headphone') jack 。这将强制音频路径到 3.5 毫米耳机插孔。

4.设置音量

音量可能会非常低,因此使用以下方法将其更改为最大:-

amixer sset PCM,0 100%

音量设置有点难用,因为它是以dB (分贝)为单位配置的,如果您不是工程师,这会非常不直观。以分贝表示,满音量一般为0dB,零音量在-100dB左右。所以好像这还不够糟糕——这是主要的脑筋急转弯—— 分贝标度不是线性的。

因此,当您在上面的命令中使用 % 表示法时amixer,您可能会认为它像普通音量控制一样工作,但事实并非如此。如果你想让音量稍微低一点,你可以把它改成 80%:-

amixer sset PCM,0 80%

您会看到输出报告大约为 -17dB,但至关重要的是您会注意到它几乎听不见。百分比直接转换为分贝,结果是您只能真正听到超过 70% 左右的任何声音。

所以,TLDR:将音量设置为 100%。

5. 测试 AirPlay 到 Raspberry Pi

现在开始shairport-sync:-

sudo service shairport-sync start

在你开始使用 AirPlay 之前什么都不会发生,所以拿一部 iPhone 或支持 AirPlay 的东西,并确保它与 Raspberry Pi 在同一个网络上。开始播放一些音乐,然后从 AirPlay 图标中选择“raspberrypi”,然后选择“完成”。

如果您听不到任何声音,请将您的 iPhone(或您使用的任何来源)音量调高,因为 Raspberry Pi 上的 PCM(耳机)输出不是很好。

此时您应该可以听到通过 Raspberry Pi 播放的音乐!

6.配置shairport-sync自动启动

显然,在专用媒体播放器中,您不想手动启动服务:您希望shairport-sync在 Pi 启动后立即运行。幸运的是,我们配置了它的systemd运行,这意味着我们可以轻松地使服务自动启动。只需输入:-

sudo systemctl enable shairport-sync

这将输出类似于此的消息:-

Created symlink /etc/systemd/system/multi-user.target.wants/shairport-sync.service → /lib/systemd/system/shairport-sync.service.

这就是创建持久 AirPlay 服务器所需要做的全部工作。重启:-

sudo reboot

当您通过 SSH 重新登录时,您可以shairport-sync像这样查询服务:-

sudo systemctl status shairport-sync.service

这将(希望)产生类似的东西: -

● shairport-sync.service - Shairport Sync - AirPlay Audio Receiver
    Loaded: loaded (/lib/systemd/system/shairport-sync.service; enabled; vendor preset: enabled)
    Active: active (running) since Wed 2018-12-05 22:30:26 GMT; 1min 16s ago 
Main PID: 515 (shairport-sync)
    CGroup: /system.slice/shairport-sync.service
            └─515 /usr/local/bin/shairport-sync Dec 05 22:30:26 raspberrypi systemd[1]: Started Shairport Sync - AirPlay Audio Receiver.

因此,您现在应该可以在每次启动树莓派时通过 AirPlay 播放树莓派。

7. 防止 Wifi 掉线

Raspberry Pi wifi 会周期性进入省电模式,这会在使用 AirPlay 时导致严重的音频故障。您可以通过在文件中添加一行来防止这种情况/etc/network/interfaces 。使用以下命令编辑文件:-

sudo nano /etc/network/interfaces

转到文件末尾并添加行:-

# Disable wifi power management wireless-power off

在这一切之后,重新启动:-

sudo reboot

现在你应该启动并运行了!

故障排除

如果您看不到raspberrypiAirPlay 中列出的设备,请检查shairport-sync服务是否正在运行:-

sudo systemctl status shairport-sync.service

检查它是否与您的 AirPlay 源设备在同一个 LAN 上,最好在同一个 Wifi 网络上,并且在范围内。

如果您已连接到 AirPlay 但听不到任何音频,请检查音量是否足够高。

在源设备上,只需将音量滑动到大约 80–90%。

对于 Raspberry Pi PCM 音频,使用以下方法检查音量设置:-

amixer sget PCM

这将像这样输出当前设置:-

Mono: Playback 400 [100%] [4.00dB] [on]

如果您看到任何低于 70% (-27dB) 的声音,那么您可能听不到。最好将此设置保持在 100%。

显然也要检查您的音频硬件!

音频质量注意事项

这篇文章在 Hacker News 上发表后引起了很大的兴趣,许多人提到了 Raspberry Pi 内置音频插孔的音频质量差。我正计划写一篇关于使用 DAC 板来改善音频的后续文章,但在我开始讨论之前,我可能应该在这里提及它。

我试过两个 DAC 板。第一个是 IQAudIO PiDAC+,它具有适合新的 Pi 3 Model A+ 的完美外形。我还在 Pi Zero W 上使用了HiFiBerry DAC+ Zero 。它们的设置都非常简单,而且听起来很棒。

另一个我还没有亲自使用过的非常流行的是Pimoroni pHAT DAC 。

我还没有对它们进行认真的比较测试,但是选择其中一个,你会发现音频质量有了巨大的提高。

谢谢!

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !