1. 简介
背景音乐系统的最大特点就是实现各个房间能够同步的播放相同音乐内容,使得用户在家庭的各个角落都能收听到自己喜爱的音乐。其系统已经发展的比较成熟了,大部分都是通过中央功放加上布置在各个房间的控制器和扬声器系统来实现的。其中中央功放可以接收多路音源输入,部分高级的功放能连接外置存储器具有媒体文件管理功能。各个房间的控制器(终端)能够点播中央功放上的节目源,以及实现所有的终端同步播放的功能。然而这样的系统大都需要在装修时提前布好线路,对于开始时没有布线的家庭来说就不太好实现了。
另一种系统是基于当前成熟的wireless(WIFI)局域网技术,实现布置在各个房间的终端通过无线连接获得控制以及媒体播放的同步,以实现在没有布线的环境下构架背景音乐系统,如当前比较热门Sonos的系统等。不过Sonos系统价格昂贵,单是一个终端结点就需要3K左右,如果在一个家庭的每个房间都布置一套,投入就相当可观了。
在此笔者通过上网无意中发现了罗技公司已经研发出的squeezeBox产品线[1],其最大的特点也是实现各个播放器终端可以播放同步。虽然squeeze产品线上五花八门的播放器(终端硬件)卖得也挺贵的,不过好在有可以运行在PC,phone以及其他嵌入式产品上的播放器终端,这样用户可以在不购买罗技的官方播放器硬件产品的基础上,在已有的硬件上通过运行软件来模拟。最难能可贵的是,部分播放器,如squeeze player, squeeze lite等还是开源的,这样可以很方便的将播放器移植到不同的嵌入式平台上。
本文简单介绍squeezebox的系统框架,然后描述通过raspberry PI硬件平台,实现一套wireless的无线背景音乐系统。
2. SqueezeBox系统框架简介
SqueezeBox包含两部分:服务器(server)和播放器(player)。
服务端:可以使用安装在PC上的LMS软件[2],来构建一个squeezebox服务器;多媒体文件也存储在该PC上面。squeezeBox服务器软件能自动扫描指定目录下的媒体文件并更新自身的数据库。
客户端:这个的选择很多,包括罗技自己的squeezebox家族的硬件播放器[3](都很贵哦),以及运行在PC(也支持其他平台)的软件,如Softsqueeze, SqueezePlay, Squeezelite等。在IOS以及Android系统上也有相关的软件。
如上图,SqueezeBox的服务器是由普通PC+LMS(Logitech Media Server) 软件组成,播放器可以是Logitech的squeeze硬件,以及普通PC+squeezeplayer软件,或者是安装在智能手机上squeeze controller 软件。
3. 基于Raspberry PI构建的系统简介
这里介绍的,是基于Raspberry PI硬件,通过安装squeezeBox相关的软件,将一个Raspberry PI构建成squeezeBox server(LMS),多个Raspberry PI构建成squeeze player,分别放置于不同的房间,来实现一个低成本,且不用复杂布线的背景音乐系统。
关于Raspberry PI硬件平台,此处就不做介绍了,不了解的话可以google之。
下面是系统框架图:
Raspberry PI for LMS Server: 一台RaspberryPI设备用做SqueezeBox服务器,其通过USB连接外置USB硬盘,硬盘上用于存储音乐文件(如MP3, WMA…)。Server还安装有Samba服务,以方便将歌曲拷贝。
其他的Raspberry PI都配置成SqueezeBox player,连接音箱,作为播放器。
播放器的控制可以通过智能手机(Android/IOS),或者PC,安装有squeezeBox的控制软件来进行。
实现的功能:
1:可通过手机对任意一个播放器进行单独控制,包括选曲,音量调节,自动关机等。也就是各个房间可以通过手机控制播放不同的音乐。
2:通过手机设置,哪几个播放器用于同步;例如房间1和房间2同步播放一首音乐,房间3和房间4同步播放另一首音乐,或者所有房间播放同一首音乐等。
同步效果:
通过实验,发现同步效果还是很不错的,在5个结点的情况下,所有结点的播放都很同步。但由于无线网络自身限制,偶尔会出现某个结点失去同步,如出现0.5秒的延迟,但服务器会马上发现这种错误,并及时进行纠正,因此绝大多数时间,都能所有的播放器播放都很同步。
此前,也试验过通过pulseAudio的RTP multicast的形式进行音乐播放,发现同步的性能远不及squeezeBox这套系统的性能。
4. 在Raspberry PI上搭建SqueezeBox的详细步骤
随后的文章会对此进行介绍。
[1] http://wiki.slimdevices.com/index.php/Main_Page
[2]LMS软件:http://wiki.slimdevices.com/index.php/Squeezebox_Server
[3] http://wiki.slimdevices.com/index.php/Hardware_comparison