惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
J
Java Code Geeks
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
Engineering at Meta
Engineering at Meta
量子位
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
腾讯CDC
I
InfoQ
F
Fortinet All Blogs
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
爱范儿
爱范儿

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
跟着上手树莓派(三)—— 让你的有线音箱从此无拘无束 - 少数派
2017-07-28 · via 少数派

自我介绍

笔者系计算机系在校生,搞机生涯丰富,强迫症患者,喜欢自己给自己找事,想尽办法让生活过的方便一丢丢,多年果粉 & Nexus 粉一枚,未来的码农,目前深陷 Apple Loop 无法自拔。

 上一期:跟着上手树莓派(二)—— SSH & VNC 连接


前言

截至目前,你应该拥有了一块正常运行的树莓派,掌握了与他互动的两种方式(SSH 以及 VNC),本期让我们开始搞一个小东西,一款名叫 Shairplay 的应用。它可以让你的有线老音箱与树莓派结合,瞬间变成一款支持 AirPlay 的智能 Wi-Fi 音箱,你的 iOS 设备在家中可以无缝连接到同一音箱上,就像下图所示:

 macOS 上可以按住 Option,点击音量,选择把音频从音箱输出。
 iOS 上也可以在音乐界面或控制中心里选择从音箱输出。

1. 更换软件源

刚才说过,这个功能的实现是通过一款叫做 Shairplay 的应用来实现的,我们可以直接在树莓派从软件源上下载安装该应用,但由于树莓派默认的软件源是国外的服务器,访问较慢,所以在开始之前我们把软件源更改为阿里云提供的高速镜像源。(必须感谢下阿里爸爸)

   ①  SSH 登录至树莓派,输入 nano /etc/apt/sources.list

   ②  将文件按下图修改:(注意将原来的 deb-src 那一行的行首加一个 "#" 来注释掉原来的源)

8CCD6205-2F7F-4C7A-8133-BEF021555B89

阿里云镜像源:

deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

③  然后按 Ctrl + O,回车,Ctrl + X,保存退出。

④  最后输入 sudo apt-get update && apt-get upgrade -y 更新,可以看到此时连接的速度已经快到飞起了,待更新完毕,继续下面的教程。

0C011034-0FBA-4C21-B144-4DF879867432

2. 安装 Shairplay

接下来就可以愉快的安装 Shairplay 了,一切根据 Github 上的教程走:

①  依次输入以下命令,安装 Shairplay 和必要依赖:

sudo apt-get install autoconf automake libtool                                                                                 sudo apt-get install libltdl-dev libao-dev libavahi-compat-libdnssd-dev                                             sudo apt-get install avahi-daemon

②  依次输入以下命令,来编译和安装 Shairplay:

git clone https://github.com/juhovh/shairplay.git
cd shairplay
./autogen.sh
./configure
sudo make install

③  至此,你的 Shairplay 就安装完毕了。

3. 第一次运行 Shairplay

①  确保你在 shairplay 的路径下,输入 shairplay -a Shairplay,看到以下输出,即成功运行:

②  此时使用你的 iOS 设备查找 Airplay 音箱,即可找到你的小音箱。

IMG_3194

4. TrubleShoot (噪音问题)

如果你遇到音箱有莫名噪音的问题,除了使用共地滤波器解决一下之外,还可以尝试更改 Audio 的 PWM 模式,修改为图中样子(没有的话就新增),之后重启一下就好了。

7C76F889-3A61-4DD8-B154-BB775AE425A6

5. 设置开机自启

截至目前,一旦我们关闭 SSH 的窗口,音箱就不能再用 Airplay 了。而当我们想使用的时候,也需要手动打开,所以设置开机自动启动就是件必备的事情:

①  建立 shairplay 服务,输入:

cd /etc/init.d/

sudo touch shairplay

sudo nano shairplay

②  开启启动脚本,复制粘贴以下:

#!/bin/bash

#

# This starts and stops shairplay

#

### BEGIN INIT INFO

# Provides: shairplay

# Required-Start: $network

# Required-Stop:

# Short-Description: Free portable AirPlay server implementation similar to ShairPort.

# Description: Free portable AirPlay server implementation similar to ShairPort.

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

### END INIT INFO

# Source function library.

. /lib/lsb/init-functions

DAEMON="/usr/local/bin/shairplay"

DAEMON_ARGS="-a Wohnzimmer"  # 这里的 Wohnzimmer 可以替换成你想要的音箱名称

AIRPORT_KEY_DIR="/usr/local/share/shairplay"

[ -x $binary ] || exit 0

RETVAL=0

start() {

 echo -n "Starting shairplay: "

 start-stop-daemon --start --quiet --chdir $AIRPORT_KEY_DIR \

 --exec "$DAEMON" -b --oknodo -- $DAEMON_ARGS

 log_end_msg $?

}

stop() {

 echo -n "Shutting down shairplay: "

 start-stop-daemon --stop --quiet --exec "$DAEMON" \

 --retry 1 --oknodo

 log_end_msg $?

}

restart() {

 stop

 sleep 1

 start

}

case "$1" in

 start)

 start

 ;;

 stop)

 stop

 ;;

 status)

 status shairplay

 ;;

 restart)

 restart

 ;;

 *)

 echo "Usage: $0 {start|stop|status|restart}"

 ;;

esac

exit 0

③  依旧 Ctrl+O,回车, Ctrl+X 退出。

④  输入 chmod +x /etc/init.d/shairplay ,赋予其可执行权限。

⑤  输入 update-rc.d shairplay defaults ,更新 Shairplay 设置。

⑥  输入 cd ~ 回到用户目录。

⑦  输入以下命令,储存 airport.key。

sudo mkdir /usr/local/share/shairplay

sudo cp shairplay/airport.key /usr/local/share/shairplay

⑧  输入 nano /etc/rc.local,复制以下脚本:

# Don't run multiple instances - start just one screen, named "shairplay":

[[ $(screen -list | grep shairplay) == '' ]] &&

 screen -dmS shairplay sh

# Keep shairplay perpetually running. When it crashes, we can just SIGKILL it, and it comes back:

[[ $(ps aux | grep -v grep | grep pts | grep '/usr/bin/shairplay') == '' ]] &&

 screen -S shairplay -p 0 -X stuff "while true; do /usr/bin/shairplay --apname=Airamaplay --ao_devicename=default; sleep 2s; done

"

⑨  粘贴到 exit 0 之前,Ctrl+O,回车,Ctrl+X,退出。

⑩  输入 reboot,重启,开机就会自动启动 Shairplay 了。

Enjoy it.


我的新浪微博:@Sunbelife,欢迎和我讨论和分享好玩的东西。

附:

1、调整音量,可在树莓派输入:alsamixer 调整。

2、出现:The following packages have unmet dependencies: libavahi-compat-libdnssd-dev 问题可以查看:https://www.douban.com/note/619209826/,如果无法解决,请更换其他软件源。

3、如果不能成功自启,请检查 screen 是不是没有装上。