百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

30元实现你的平价sonos—音响升级DLAN和Airplay,附平价音响推荐

yuyutoo 2025-02-15 01:46 3 浏览 0 评论

本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:拉德布鲁赫信徒



1 引言

这篇文章的一切,要从什么值得买的金币说起。前一阵发现什么值得买的金币跟京东云无线宝给的京豆已经攒了很多很多了,就套现了一波,顺手买了一个音响,就是很普通的一个音响,漫步者的R201BT。



虽然是一个蓝牙音响把,但是关于听歌这种事情,就是蛮随性的,有时候用着电脑(音响是接在电脑上的),有时候又是手机或者平板。有时候就是很想让这个音响成为某种意义上的“共享音响”,即随时随地都可以享受音乐(瞎听加木耳,没必要跟我说加钱什么的,这个音响对我来说已经足够使用了)。

在这个立意下,在猫店狗店进行了一番深入的学习,市面上主流的协议就是两种,即苹果的airplay和安卓等设备使用的dlan(当然还有qq音乐自己搞出来的qplay,因为确实用得少就不在我的考虑范围了),按照我的理解归纳为以下几种:

一种就是实体音响,自带各种协议的,这里比较常见的就是苹果的HomePod和Sonos这种音响,但是相对而言价格较高,而且某种意义上是封闭的。当然了,某哈曼卡顿的R1音响当年还是有一定性价比的,但是现在价格被炒上去了就瞬间不香了。还有一种就是在传统的音响上面进行升级,即所谓的无线音频接收器。

作为实体音响来说,主要存在两点,一点就是相对封闭,比如苹果的HomePod对苹果设备支持较好,但是对其他设备支持欠缺,Sonos在我看来设置过于麻烦。最重要的一点,就是价格普遍偏高,这种东西在自己有限的购买力范围内能够给自己带来快乐就行,本身产生不了其他的价格,因此对于我个人而言是不愿意花大价钱去买音响的。

而无线音频接收器而言,我觉得没有啥缺点,唯一的缺点就是贵,以下粘贴几个,可以感受一下:


身为垃圾佬,看着手头捡的这些垃圾,故萌生了自己做一个的想法。单纯做一个这样的音频接收器,需要的只是一个linux设备,性能根本不需要太多。手头的设备,之前发过的荣品rk3399(这个后面开文另外再说新用途)、sw799(一款rk3399的板子,但是接口跟资料确实是太少,不是很符合我的需求),还有一个rk3588的orangepi5(性能单纯拿来做一个这个属实浪费)。只试了一下荣品的设备,确实满足需求,但是rk3399的芯片拿来做这个确实大材小用了。

根据立意,这款设备我定下的标准就是:性能够用,处理器要支持64位的,ubuntu的版本一定要能支持到比较新的版本(个人的习惯),然后支持wifi(省去拖网线的烦恼),有音频接口。因此对应的只能是一些开发板啥的,但是新的开发板哪怕是全志h3芯片的价格都要100多,捡垃圾的话,支持系统都会或多或少的存在一些问题,有的就是纯粹移植一个系统,能够启动就算完事了,至于板子上的硬件能不能驱动起来,并不在考虑范围之内。

在小黄鱼浪迹了几天之后,终于是发现了这款30块钱的设备,正好能够契合我的需求,暂且给它起一个名字,就叫rk3118-box。

基本上该有的接口也都有了,比一些广告机拆下来的设备乱七八糟不知道咋用的接口,看起来观感好上很多。rk3118就是一款普普通通的64位芯片,但是神奇的是卖家竟然给刷上了ubuntu22.04。主要的几个接口如hdmi、音频接口、有线网口(好像是百兆的)、还有sd卡槽跟usb口,基本上该有的也都有了,不该有的一个都没有。个人感觉应该就是从某个机顶盒上面拆下来的板子,但是能够支持完整的ubuntu就比cm311这种只支持armbian的要好上不少了。


2 效果展示

以下分别展示以下airplay和dlan播放的效果,会分别列出一些存在的问题。

综合来说,这里支持的Airplay是通过AirPlay2实现的,存在的问题主要就是有一定的延迟,但是对于我来说还属于可以接受的范围。而DLAN的表现就比较稳定,但是也会存在一点点小bug,就是有时候快速点一首歌的时候会没有反应,但是切换一下也就好了。


3 部署

到手当然是先升级一下系统,SSH的密码是armbian还是root,自己试一下就好的。

sudo apt update

sudo apt upgrade

然后就进入部署阶段。

3.1 Airplay

这里使用的shairport-sync去实现AirPlay的功能。这个项目同时支持AirPlay的一代和二代。

官方项目地址里面指明了两种部署方式,一种是本地部署,还有一种是通过Docker部署。经过实测,Docker总会出现一些奇怪的问题,因此还是用最基本的方式部署。当然,大家也可以尝试一下,有跑通的记得艾特我一下,我这出现的问题就是使用都没有声音。

3.1.1 部署

1 安装必要的依赖项

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

2 克隆shairport-sync的源代码并编译

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

cd shairport-sync

autoreconf -i -f

./configure --sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd

make

3 安装shairport-sync

sudo make install

4 启动shairport-sync

shairport-sync

到这一步应该可以在Apple设备上看到一个名为“Shairport Sync”的AirPlay输出。试着播放一些音乐,看看是否能听到声音,如果可以听到,就证明部署成功了。如果没有的话,就进入下一步。

3.1.2 配置shairport-sync


1.以root身份打开 /etc/shairport-sync.conf 文件。使用以下命令:

sudo nano /etc/shairport-sync.conf

2.找到 [alsa] 部分,并取消 output_device 设置的注释,然后将其值设置为您的音频设备名称。这里的设备是“ANALOG”。所以,需要将其设置为:

output_device = "hw:ANALOG";

当然,也可以设置成hw:0,0 ,表示您要使用的是卡0(ANALOG)的设备0。

具体示例如下:

alsa =

{

output_device = "hw:0,0"; // the name of the alsa output device. Use "shairport-sync -h" to discover the names of ALSA hardware devices. Use "alsamixer" or "aplay" to find out the names of devices, mixers, etc.

// mixer_control_name = "PCM"; // the name of the mixer to use to adjust output volume. No default. If not specified, no mixer is used and volume in adjusted in software.

// mixer_control_index = 0; // the index of the mixer to use to adjust output volume. Default is 0. The mixer is fully identified by the combination of the mixer_control_name and the mixer_control_index, e.g. "PCM",0 would be such a specification.

// mixer_device = "default"; // the mixer_device default is whatever the output_device is. Normally you wouldn't have to use this.

// ...

};

3.保存文件并退出编辑器。

4.重启shairport-sync服务:

sudo systemctl restart shairport-sync

到这里就Airplay已经部署完成了,关于设置开机启动,可以参考一下下面的内容。

sudo systemctl enable shairport-sync

sudo systemctl start shairport-sync

3.2 DLAN

DLAN是通过Gmrender来实现的,以下仅给出步骤:

3.2.1 安装依赖

sudo apt-get install libupnp-dev libgstreamer1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-alsa autoconf

3.2.2 安装 Gmrender

1、定位到home文件夹并克隆程序源码

cd ../home/
git clone

2、转到刚刚克隆的gmrender-resurrect文件夹并安装

cd gmrender-resurrect
./autogen.sh
./configure
sudo make
sudo make install

3、设置开机自启动

因为是通过源码编译安装的 gmediarender,那么我们需要手动创建一个 Systemd 服务文件。请按照以下步骤操作:

创建一个新的 Systemd 服务文件:

sudo nano /etc/systemd/system/gmediarender.service

将以下内容粘贴到编辑器中:

[Unit]

Description=GMRender-Resurrect (DLNA Media Renderer)

After=network.target

[Service]

User=root

Group=root

ExecStart=/usr/local/bin/gmediarender -f YOUR_RENDERER_NAME --gstout-audiosink=alsasink --gstout-audiodevice=sysdefault --logfile=/var/log/gmediarender.log

[Install]

WantedBy=multi-user.target

注意:将 YOUR_RENDERER_NAME 替换为您希望显示在 DLNA 控制器应用中的渲染器名称。

保存并退出编辑器 (在 nano 编辑器中,按 Ctrl + X,然后按 Y 确认保存,再按 Enter 键)。

重新加载 Systemd 配置:

sudo systemctl daemon-reload

启动 gmediarender 服务:

sudo systemctl start gmediarender.service

检查 gmediarender 服务的状态:

sudo systemctl status gmediarender.service

如果服务正在运行,设置为开机启动:

sudo systemctl enable gmediarender.service

完成这些步骤后,gmediarender 应该在后台运行,并且Android 设备应该能够找到它。确保 Android 设备和运行 gmediarender 的设备位于同一局域网上。


4 结语

教程到这里差不多就算结束了。捡垃圾嘛,最终的目的就是花小钱办大事,并且享受折腾的乐趣。这个小设备呢,确实比较便宜,30块钱就可以实现很多很多的功能,基本上大家平日里说的docker、homeassitant也是都可以部署的,我这里只是切片去讲一下如何将这种设备落地,即大家在生活中可以切实的感受到这个设备。64位的完整ubuntu系统(不要拿一些设备刷了armbian的来跟我这叨叨,armbian是精简版的Debian,很多东西都是缺失的)加上wifi,这种设备捡垃圾的时候确实难找,而且体积相对也是适中的。

关于音响的部分,除了开头就提到的漫步者,当时考虑的还有另外一款:



音响的选择嘛,其实说白了够用就行的。毕竟也不是每个人都是发烧友,也没必要搞一些加钱或者鄙视链啥的,只要花钱能够满足自己的需求,让自己能够开心就好的。疫情刚刚结束,大多数人的日子都不好过,所以花小钱办大事,或者说花一点小钱给自己买来一点快乐这才是至关重要的。

后面准备拿之前的荣品那个板子,捣鼓一个支持gpt的智能音响出来,弄好了再发文把。



相关推荐

微软Win10/Win11版Copilot上线:支持OpenAI o3推理模型

IT之家4月3日消息,科技媒体WindowsLatest昨日(4月2日)发布博文,报道称Windows10、Windows11新版Copilot应用已摘掉Beta帽...

WinForm 双屏幕应用开发:原理、实现与优化

在当今的软件开发领域,多屏幕显示技术的应用越来越广泛。对于WinForm应用程序来说,能够支持双屏幕显示不仅可以提升用户体验,还能满足一些特定场景下的业务需求,比如在演示、监控或者多任务处理等场景...

推荐一个使用 C# 开发的 Windows10 磁贴美化小工具

...

OpenJDK 8 安装(openjdk 8 windows)

通常OpenJDK8和11都能互相编译和通用。我们建议使用11,但是如果你使用JDK8的话也是没有问题的。建议配置使用OpenJDK,不建议使用OracleJDK,主要是因为版...

基于 Linux 快速部署 OpenConnect VPN 服务(ocserv 实战指南)

一、前言在如今远程办公和内网穿透需求日益增长的背景下,搭建一套安全、稳定、高效的VPN系统显得尤为重要。OpenConnectServer(ocserv)是一个开源、高性能的VPN服务端软件...

巧妙设置让Edge浏览器更好用(edge怎么设置好用)

虽然现在新版本的Edge浏览器已经推出,但是毕竟还处于测试的状态中。而Win10系统里面自带的老版Edge浏览器,却越来越不被人重视。其实我们只需要根据实际情况对老版本的Edge浏览器进行一些简单的设...

WPF做一个漂亮的登录界面(wpf页面设计)

...

微软开源博客工具Open Live Writer更新:多项Bug修复

OpenLiveWriter前身是WindowsLiveWriter,是微软WindowsLive系列软件之一,曾经是博主们非常喜爱的一款所见即所得博文编辑工具,支持离线保存,还支持图像编辑...

基于OpenVINO的在线设计和虚拟试穿 | OPENAIGC大赛企业组优秀作品

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。...

C#开源免费的Windows右键菜单管理工具

...

Windows10或11中隐藏的功能,用它再也不用担心电脑中病毒!

...

Python open函数详解(python open函数源码)

演示环境,操作系统:Win1021H2(64bit);Python解释器:3.8.10。open是Python的一个内置函数,一般用于本地文件的读写操作。用法如下。my_file=open(fi...

Windows 11 安装 Docker Desktop(Windows 11 安装助手 Windows 易升 关系)

...

Windows 11 新版发布:屏幕亮度自适应控制,小组件界面重新设计!

...

世界上最好用的Linux发行版之一,OpenSUSE安装及简单体验

背景之前无意在论坛里看到openSUSE的Linux发行版,被称为世界上最好用的Linux发行版之一(阔怕),一直想体验一下,于是这期做一个安装和简单体验教程吧。...

取消回复欢迎 发表评论: