美文网首页@产品
穷人版HomePod:给Sonos Play:1加入AirPla

穷人版HomePod:给Sonos Play:1加入AirPla

作者: Chuck_Pyen | 来源:发表于2019-03-17 21:01 被阅读17次

    我在2017年双十一以1200元的价格买入了Sonos Play:1,当初就是看中了它的音质,以及整合了几乎国内所有在线音乐。

    但是非常坑爹的是,仅仅在一年后,Sonos就推出了Sonos One取代了Play:1这款产品,而且还给Play:1和Play:3外其他所有Sonos音箱加入了AirPlay 2支持。

    也就是说Play:1只能当做音乐流媒体音箱使用,无法使用AirPlay直接投放手机音乐,也不能在用Mac看电影时作为外放使用。完全浪费了这款千元级音箱。

    好在国外有很多高手开发了Sonos转AirPlay项目。不过这些项目大多几年未更新,而且稳定性也不好。

    最近我找到了一个AirConnect项目,开发者一直在不断更新,就在我写这篇文章几个小时前,他还更新了0.2.8版,话不多说,它的项目地址是:

    https://github.com/philippe44/AirConnect

    你甚至不需要自己编译,去bin这个文件夹中下载对应平台的版本即可,请记住是下载前缀airupnp的文件,如果你是在Windows平台上使用,还要下载所有dll文件。

    这里我下载了两个版本airupnp-osx-multiairupnp-arm5,一个是给我的Mac使用,另一个是给我的NAS使用。

    以Mac为例,我把airupnp-osx-multi下载到Music文件夹下

    打开终端(Terminal),给二进制文件加入可执行权限:

    cd ~/Music

    chmod +x airupnp-osx-multi

    接下来运行它:

    ./airupnp-osx-multi -l 1000:2000 -z -x airupnp.log

    上面的操作还有一点小缺陷,就是用AirPlay一定要开着电脑,如果你有树莓派或者NAS,让这些24小时在线设备运行AirConnect就好了,还能省电。

    树莓派就是个完整的Linux系统,没啥好说的,把airupnp-arm加入的开机进程就行了。

    我用的是西部数据的My Cloud EX2 Ultra,系统非常变态,几乎找不到添加开机自启程序的方法。

    但是我注意到在官方商店安装的Transmission可以自启动,只需在Transmission的自启动脚本中加入两句就可以实现“寄生启动”:

    进入Transmission自启动脚本,用vi编辑start.sh

    cd /mnt/HD/HD_a2/Nas_Prog/Transmission

    vi start.sh

    按下i进入编辑模式,在最后加入两句脚本:

    cd /mnt/HD/HD_a2/Music

    ./airupnp-arm5 -l 1000:2000 -z -x airupnp.log

    重启NAS就行啦!

    AirPlay是通过网络传输高质量音频,因此会有2秒的延迟。根据贴吧网友实测延时情况:

    我们上面执行的命令里,airupnp有个-l的选项就是设置延时,1000:2000就是RTP延时1000ms、HTTP延时2000ms。

    所以要解决延迟问题,除了尽量用上图里的一些方式观看视频,还有个办法就是让音频提前。

    如果你在用iina播放器看电影的时候,按下Shift+)可以让音频比画面提前。我们可以将声音提前2秒,这样就完美解决音画不同步问题。

    (注意,不同ARM处理器所用的程序不同,有的是airupnp-arm5,有的是airupnp-arm,分别试一下哪个可用。)

    相关文章

      网友评论

        本文标题:穷人版HomePod:给Sonos Play:1加入AirPla

        本文链接:https://www.haomeiwen.com/subject/zheumqtx.html