tll 发表于 2013-5-17 12:55:40

Cubieboard变苹果无线airplay音响

本帖最后由 tll 于 2013-7-18 23:12 编辑

大家应该知道苹果的airplay技术吧,这个技术是把音乐或视频图像等东西传到和苹果有签约音响或者AppleTV上,今天的一次突发奇想,让我写出了这篇教程。今天我突然想到为什么不能把音响和Cubieboard连接在一起,变成苹果Airplay音响呢?果然,我真搜到了一个程序并且把它改编了一下做成了自己的air服务端程序,现在给大家安装和使用的教程
首先我们需要用到一个叫air的程序,安装方法:
wget http://cb.tonylianlong.com/usr/uploads/2013/05/1334066771.zip -O air.zip
unzip air.zip
chmod +x air.sh
./air.sh --install
这个程序是airplay的第三方服务端程序,是sharport(airiTunes的一个接收软件)改编而成。
安装完后直接输入air命令来启动air程序
此时开苹果设备,你会发现后台的更改音量的那栏多了一个按钮,按下后有个airplay的名字叫TonyAIR,这就是咱们弄airplay的cb了

按下后跳出菜单,选择TonyAIR

然后我打开QQ音乐程序随便点了首歌,没几秒钟音乐就从cb里出来了。

如果觉得TonyAIR这个airplay的名字难听,可以在启动时输入: air (你想要的名字) 来用你自己想要的名字
改音乐输出可以用:http://cn.cubieboard.org/forum.php?mod=viewthread&tid=191里面的方法来调整为板载输出(音乐是上面那个,麦克风是背面的)
如果要真的弄airplay音响,那就必须开机启动这个程序,把air命令添加到/etc/rc.local里就好了(试过可用,不过结尾需要一个“&”号让他后台运行)
经测试,没有任何卡顿现象!另外说下,停止播放时会有几秒延迟。
以下是安装shell的代码,外加注解(文件里没有):#!/bin/bash
#强制用bash开,默认的dash兼容上有点问题
if [ `whoami` == "root" ] ; then
#判断用户是不是root
if [ "$1"x == "--install"x ] || [ "$1"x == "-i"x ] ; then
#判断输入的第一个参数是不是--install or -i
echo "Try to install it"
echo ""
echo "REFREASHing APT"
#三个输出
apt-get update
apt-get upgrade -y
#更新软件源
echo "INSTALLing software from APT"
apt-get install wget build-essential libssl-dev libcrypt-openssl-rsa-perl libao-dev libio-socket-inet6-perl libwww-perl avahi-utils pkg-config git -y
#安装软件
echo "copy Perl Plugin from GIT"
git clone https://github.com/njh/perl-net-sdp.git /tmp/perlnet
#取得一个perl的联网插件
echo "Building"
cd /tmp/perlnet
perl /tmp/perlnet/Build.PL
/tmp/perlnet/Build
/tmp/perlnet/Build test
/tmp/perlnet/Build install
#Build和安装程序
mkdir /usr/air
echo "Downloading File.."
wget http://cb.tonylianlong.com/usr/uploads/2013/05/2971708022.zip -O /usr/air/air.zip
#从我的服务器下载文件,文件是我编译好的
echo "Unzipping"
unzip /usr/air/air.zip -d /usr/air
#解压文件
touch /bin/air
echo "#!/bin/bash" > /bin/air
echo "if [ \"\$1\"x == \"\"x ]; then" >> /bin/air
#判断有没有输入第一个参数
echo "/usr/air/start.pl -a TonyAIR" >> /bin/air
echo "else" >> /bin/air
echo "/usr/air/start.pl -a \$1" >> /bin/air
echo "fi" >> /bin/air
chmod +x /bin/air
#权限
echo "OK,filished!"
echo ""
#创建air程序
echo "RE-run this file (or just run \"air\") and not use --install or -i to run Air"
else
if [ ! -f "/bin/air" ]; then
#如果不存在
echo "Air is not installed,try to use --install or -i to install it"
else
/bin/air
#启动
echo "End!"
fi
fi
else
echo "You are not using \"root\" user!"
echo "You are using "`whoami`" user!"
#输出用户名,并且说不是root
fi

wuting 发表于 2013-5-17 13:44:40

不错,周末有时间我也试试

zhenyu33154 发表于 2013-5-18 00:13:24

学习了~

qqq1243 发表于 2013-5-27 18:03:05

效果不错~ 谢谢
第一步的 air.sh 的换行符是 Windows 风格要转一下..

tll 发表于 2013-5-27 20:28:17

本帖最后由 tll 于 2013-7-19 13:10 编辑

qqq1243 发表于 2013-5-27 18:03 static/image/common/back.gif
效果不错~ 谢谢
第一步的 air.sh 的换行符是 Windows 风格要转一下..
好的

oldbing 发表于 2013-8-8 21:42:59

我是新人,不懂linux的,按你的操作来做,但出现了以下问题,麻烦帮我看看。

2013-08-08 13:44:35 (8.32 MB/s) - `air.zip' saved

root@Cubian:~# unzip air.zip
Archive:air.zip
inflating: air.sh                  
root@Cubian:~# chmod +x air.sh
root@Cubian:~# ./air.sh --install
-bash: ./air.sh: /bin/bash^M: bad interpreter: No such file or directory
root@Cubian:~#

tll 发表于 2013-8-8 21:54:01

oldbing 发表于 2013-8-8 21:42 static/image/common/back.gif
我是新人,不懂linux的,按你的操作来做,但出现了以下问题,麻烦帮我看看。

2013-08-08 13:44:35 (8.32 M ...

我知道,这个问题已经发现了,目前的解决办法是:
rm air.sh
nano air.sh
然后把上面的源码复制进去
然后CTRL+X退出
chmod +x air.sh

oldbing 发表于 2013-8-8 23:07:18

tll 发表于 2013-8-8 21:54 static/image/common/back.gif
我知道,这个问题已经发现了,目前的解决办法是:
rm air.sh
nano air.sh


安装成功了,谢谢。但是一播放就出现这个问题,断掉了。

root@Cubian:/home/cubie# air
Established under name 'FD4C94380ADE@TonyAIR'
Audio StreamE5YTzowcSE+mdm2HBX8d3A==/usr/air/hairtunes: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.15' not found (required by /usr/air/hairtunes)
Use of uninitialized value $portdesc in pattern match (m//) at /usr/air/start.pl line 684.
Use of uninitialized value $portdesc in concatenation (.) or string at /usr/air/start.pl line 684.
Expected port number from decoder; gotat /usr/air/start.pl line 684.
root@Cubian:/home/cubie#

tll 发表于 2013-8-9 07:18:56

oldbing 发表于 2013-8-8 23:07 static/image/common/back.gif
安装成功了,谢谢。但是一播放就出现这个问题,断掉了。

root@Cubian:/home/cubie# air


没glibc 2.15,自己搜索安装

itfanr 发表于 2013-8-9 09:09:34

让我想起了有人拿树莓派的PWM发射收音机信号。。。
页: [1] 2
查看完整版本: Cubieboard变苹果无线airplay音响