Airplay est une famille de protocoles permettant à Apple de voir n’importe quel type de contenu média sur la TV d’Apple, depuis n’importe quel dispositif iOS (iPhone, iPod ou iPad) ou iTunes. Ces flux de données ne sont normalement lisibles, de par leur protocole, que par de appareils Apple. Heureusement, nous pouvons contourner cette règle.

Le but de cet article est de vous montrer comment, avec une Raspberry Pi, vous pouvez créer votre borne Airplay, et la connecter à une chaîne Hifi, pour créer votre propre circuit streaming depuis vos appareils Apple. Votre Rasbperry Pi deviendra alors, pour les initiés, une Airplay Receiver.

Sommaire

Pré-requis à la transformation de votre Raspberry Pi en borne Airplay

Chaîne Hifi Cambridge

  1. Une chaîne Hifi munie d’un DAC (Digital Analog Converter) avec entrée USB,  et d’enceintes
  2. Un iPhone
  3. Un casque (optionnel)
  4. Et bien sûr, une Raspberry Pi

Paramétrages de la Raspberry Pi

Notre Rasbperry Pi utilise ici le système d’exploitation Wheezy. De plus, nous utiliserons dans ce tutoriel un dongle wifi, dont nous avons indiqué l’installation dans ce tutoriel. Tous les dongles ne sont pas compatibles, veuillez donc vous référer à cette liste pour être certain d’utiliser le matériel adéquat.

Voici les paramétrages de base a appliquer à notre fichier /etc/wpa_supplicant/wpa_supplicant.conf :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="MONWIFI"
scan_ssid=1
key_mgmt=WPA-PSK
proto=WPA
psk="MACLEWIFI"
}

Et ceux de notre fichier /etc/network/interfaces :

auto lo
 
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Installation de Shairport

Shairport est un lecteur audio pour Airplay, qui vous permettra de lire des flux audio depuis les appareils iOS, iTunes, voire d’autres sources.

Voici les lignes à entrer pour son installation :

sudo aptitude install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils
git clone https://github.com/albertz/shairport.git shairport
cd shairport
make
sudo make install
Pour la tester, entrez les lignes suivantes :
/shairport.pl -a ShairPort
Il peut arriver que le message d’erreur suivant s’affiche :
Can't locate Net/SDP.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ./shairport.pl line 48.
BEGIN failed--compilation aborted at ./shairport.pl line 48.
Dans ce cas, il vous faudra ajouter ceci pour terminer installation pour de bon :
sudo cpan install Net::SDP
Vous pouvez modifier le nom de votre nouvelle borne Airplay grâce à ceci :
DAEMON_ARGS="-w $PIDFILE -a NOMDEVOTREBORNEAIRPLAY"

Lancez, enfin, le lecteur audio :

sudo update-rc.d shairport defaults
sudo service shairport start
Notez que vous pouvez automatiser le lancement du lecteur Shairport au démarrage de votre Raspberry Pi avec les lignes suivantes :
sudo cp ./shairport.init.sample /etc/init.d/shairport
sudo chmod a+x /etc/init.d/shairport

Connecter votre iPhone à votre Airplay Raspberry

Shairplay Raspberry Pi

Depuis votre iPhone, vous devriez désormais voir votre borne Airplay.

En branchant un casque au connecteur Jack de votre Rasbperry Pi, vous devriez pouvoir entendre les musiques lancées depuis votre iPhone.

Grâce à un Glances, vous constaterez que le débit streaming est d’environ 1 Mo/s, et que la consommation CPU ne dépasse pas 10% en connexion filaire. Cependant, cette dernière explose avec un dongle wifi, atteignant 60%. En effet, votre processeur est bien plus demandé par le déchiffrement des données, basées sur le protocole WPA.

Nous sommes donc parvenu à transformer notre Raspberry Pi en borne Airplay, mais pas encore à la connecter à notre chaîne Hifi.

Ecouter la musique de votre iPhone sur votre chaîne Hifi depuis votre Raspberry Pi

Notre Raspberry Pi est pour l’instant paramétrée de façon à diriger le flux audio vers la sortie Jack. Nous allons modifier cela et le rediriger vers la sortie USB :

#options snd-usb-audio index=-2
options snd-usb-audio nrpacks=1
Redémarrez votre Raspberry pour que les paramétrages soient pris en compte. En dernier lieu, nous allons vérifier que tout est bien configuré. Entrez la commande suivante, qui dévoile les cartes sons de votre Raspberry Pi (la carte audio USB devrait s’afficher en premier, suivie de la carte integrée bcm2835) :
pi@raspberrypi $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
Votre iPhone devrait maintenant être connecté à votre chaîne Hifi via votre Rasberry Pi, que vous utilisez comme borne Airplay.
Evaluer cet article post
Share.

7 commentaires

  1. Bonjour

    quand j’exécute
    /shairport.pl -a ShairPort

    j’obtien :
    bash: /shairport.pl: Aucun fichier ou dossier de ce type

    Je suis a la racine pour l’installation, peut etre dois je le faire dans un dossier particulier ?

    Merci

  2. Bonsoir,
    J’ai installé Shairport et j’aimerai me connecter sans DAC directement depuis la sortie jack.
    Le problème c’est que le son est archi pourri par un souffle énorme (et une faible puissance de la musique).

    Si par contre, je joue un morceau depuis le RPI directement (genre un youtube), le son est normal.

    Il y a t-il un contrôle du son à faire ?

  3. Bonjour,

    Pour contrôler la sortie audio, j’utilise volumio un serveur de musique et en plus AirPlay !
    A partir de sa, on peut contrôler la sortie audio du RASP et avoir accès à des réglages plus ample: basse , aigus…

    Je le trouve beaucoup plus simple à mettre en oeuvre que votre solution qui fonctionne très bien aussi .

  4. Bonjour, j’ai deux erreurs que je n’arrive pas a résoudre.
    la 1ère avec la commande: sudo update-rc.d shairport defaults
    l’erreur affichée est: update-rc.d: error: unable to read etc/init.d/shairport

    la 2ème avec la commande: sudo service shairport start
    l’erreur affichée est: failed to start shairport.service: Unit shairport.service not found

    Avez vous avec mon problème que je n’arrive pas à résoudre ?

Déposez un commentaire