Sesi başka bir AirPlay cihazına yönlendirme


20

Ben kuruyorum Mopidy Bir Spotify (ve yerel dosyalar) müzik kutusu olarak Ahududu Pi kullanabilmesi Raspbian üzerinde. Raspberry Pi'nin analog ses çıkışının harika olmadığını biliyorum.

Raspberry Pi'den tüm sesi bir AirPlay cihazına (örneğin bir Airport Express) yönlendirmenin bir yolu var mı?

Komut satırından her şeyi yapabilseydim harika olurdu, bu yüzden farklı cihazları değiştirmek için bazı komut dosyaları ayarlayabilirim.


Bu harika bir soru. Airplay'i seviyorum ve bunu bir Pi'de kullanmak mantıklı. Bu ama iyi bir soru üzerine kendimi kazacağım! +1
Piotr Kula

Anladığım kadarıyla, PulseAudio kullanılarak yapılabilir. Ben de kazıyorum.
leolobato

burada tartıştıklarımıza bir göz atın raspberrypi.org/phpBB3/…
jmp909

Bunun biraz konu dışı olduğunu biliyorum - ancak uzaktan playbac'ın peşinde değilseniz, güzel bir USB DAC'a ne dersiniz?
petr

Yanıtlar:


13

Gerekirse mpd, pulseaudio ve raop2 modülünü kullanabilirsiniz:

  • Oynatma listelerini, kitaplığı vb. yönetmek için mpd ( sudo apt-get install mpd)
  • ses çıkışlarını yönetmek için pulseaudio: AirPlay için raop veya analog jak, HDMI, http akış hizmeti vb. gibi diğer çıkış cihazları ( sudo apt-get install pulseaudio)
  • Pulseaudio içine yerleştirilmiş orijinal raop modülü çalışmıyorsa, pulseaudio için raop2 modülü

Pulseaudio için RAOP modülünün güncellenmiş bir sürümünü almak için pulseaudio'yu kaynaktan oluşturmak zorunda kaldım.


İşte bunu yapmak için yaptım (eksik paketleri hakkında şikayet edebilir, sadece sudo apt-get installonlar):

MPD yükleyin

sudo apt-get install mpd

PulseAudio'yu yükleyin

Seçenek A: Eski bir AirPlay cihazınız var veya UDP akışına ihtiyacınız yok.

Daha kolay ama daha az uyumlu.

sudo apt-get install pulseaudio

Seçenek B: Daha iyi uyumluluk ve hem TCP hem de UDP akışı için destek istiyorsunuz

Daha sonra pulseaudio için raop2 modülüne ihtiyacınız var, bu da PA'dan kaynak oluşturmak anlamına geliyor.

Henüz yapmadıysanız git'i yükleyin ve pulseaudio oluşturun ( resmi talimatlara bakın ):

sudo apt-get install git intltool autoconf build-essential
cd
git clone https://github.com/hfujita/pulseaudio-raop2
cd pulseaudio-raop2
./bootstrap.sh
make
sudo make install

Kurulumumda, libpulse.so.0'ı elle symlink etmek zorunda kaldım:

cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo ln -s `cd;pwd`/pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0

veya tercihinize göre:

cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo mv pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2

Her şeyi yapılandırın

MPD başlangıç ​​kurulumu

Şimdi MPD'yi kurmamız gerekiyor:

sudo vi /etc/mpd.conf

Bu dosyada aşağıdakileri ayarlayın:

music_directory "/path/to/your/music"
user "mpd"
bind_to_address "127.0.0.1"
bind_to_address "192.168.x.y"
bind_to_address "2a01:xzy....your IPv6 if you want"

Çıktıyı düzenlememiz gerekecek, ancak önce pulseaudio lavabonun adına ihtiyacımız var.

PulseAudio lavabolar

Avahi / zeroconf, AirPlay cihazlarının (zeroconf / mDNS / Bonjour aracılığıyla) keşfini mümkün kılacağından güzel:

sudo apt-get install avahi

Şimdi pulseaudio'yu başlatabilir ve RAOP modüllerini yüklemeyi deneyebiliriz:

pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:

İşte benim kurulum çıktı:

name: <raop_output.Freebox-Player.local>
name: <raop_output.Freebox-Server.local>
name: <raop_output.Freebox-Player.local.2>
name: <raop_output.Freebox-Server.local.2>

Daha sonra /etc/mpd.conftekrar düzenlemeniz ve aşağıdaki çıktıları eklemeniz gerekir:

audio_output {
    type            "pulse"
    name            "Freebox Player"
    sink            "raop_output.Freebox-Player.local"
    format          "44100:24:1"
}

Müzik akışı yapmak istediğiniz her AirPlay cihazı için bu bloklardan birini ekleyin.

PulseAudio yapılandırması

Son bölüm PA'yı kurmaktır:

sudo vi /etc/pulse/client.conf

Uncomment autospawn = yes, gerektiğinde pulseaudio'nun otomatik olarak başlamasını sağlar.

sudo vi /etc/pulse/default.pa

En alttaki aşağıdaki satırı ekleyin:

load-module module-raop-discover

Bu, başlatıldığında RAOP keşif modülünün pulseaudio yüklemesini sağlayacaktır.

Son adım

Şimdi çalışıyor olmalı. MPD'yi başlatın (çalışıyorsa önce durdurun):

sudo /etc/init.d/mpd start

Biraz bekleyin, artalan sürecinin düzgün çalışması için RasPI'mda en az 10-15 saniye sürer.

Müzik kitaplığınızı güncelleyin (ve bitmesini bekleyin):

sudo apt-get install mpc
mpc update

İstediğiniz zaman çıkışları etkinleştir (aşağıdakiler yapılandırılmış MPD çıkışlarını listeler ve birincisini etkinleştirir):

mpc outputs
mpc enable 1

Şimdi en sevdiğiniz MPD istemcisini kullanarak biraz müzik çalın. ncmpcppTelefonumda / tabletimde komut satırı ve MPDroid kullanıyorum .

Sorun giderme

Mpd'yi ayrıntılı olarak, maksimum günlük kaydı düzeyi ile pulseaudio'yu başlatın ve günlükleri izleyin:

mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog

Öncelikle pulseaudio'yu çalıştırmaya çalışın. Sadece pulseaudio'yu yükleyin, RAOP keşif modülünü yükleyin, lavaboları listeleyin, varsayılan lavaboyu kurun ve bir şey çalmaya çalışın:

paplay /usr/share/sounds/alsa/Front_Center.wav

Pulseaudio'yu çalıştırdıktan sonra, MPD'nin onunla çalışmasını sağlayın.


1
Tam da aradığım şey buydu! Ahududu Pi üzerinde koşan bir mopidyim var. Bunu deneyecek ve çalışıp çalışmadığını size bildirecek!
leolobato

2

Görünüşe göre pulseaudio-modül-raop aradığınız şey. Bu kılavuz , Ubuntu'da bunu nasıl ayarlayacağınız hakkında ayrıntılı bir açıklamaya sahiptir.


1
Genel olarak, ayrıntılı bir açıklama sağlayan bir cevap bir bağlantıdan daha iyidir. Bağlantılar yer değiştirebilir veya ölebilir. Daha da önemlisi, pulseaudio-module-raop hakkında biraz açıklama yapmak iyi bir fikir olabilir ..
ramblinjan

2

Raspbian Jessie'yi kullanarak Raspbian Jessie'yi kullanarak yeni Raspberry Pi 3'te Airplay'i Raop / PulseAudio aracılığıyla yapılandırmaya çalışırken biraz zaman harcadık. Çok çatal-daapd öneriyoruz :

Bu, orijinal çatallı daapd 0.19'un, AirPlay cihazları, Apple Remote (ve uyumlu), MPD, Spotify, mp3 akışı ve internet radyosu desteğine sahip bir Linux / FreeBSD DAAP (iTunes) medya sunucusunun çok güncellenmiş bir versiyonudur.

Kurulum çok basitti ve her şeyi yaklaşık 10 dakika içinde çalıştırıp çalıştırdım. İşte ayrıntılı olarak yüklemek talimatlar verilmiştir burada :

1a. If you use Jessie then add this line to /etc/apt/sources.list:
deb http://www.gyfgafguf.dk/raspbian jessie/armhf/
or
1b. If you use Wheezy then add this line to /etc/apt/sources.list:
deb http://www.gyfgafguf.dk/raspbian wheezy-backports/armhf/
2. Run sudo apt-get update and then sudo apt-get install forked-daapd
3. Edit the config file /etc/forked-daapd.conf and (re)start the server with sudo /etc/init.d/forked-daapd restart

Optional - how to add support for Spotify:
1. Add deb http://apt.mopidy.com/ stable main contrib non-free to /etc/apt/sources.list
2. Run sudo apt-get update and then sudo apt-get install libspotify-dev
3. Restart forked-daapd and enter credentials as described in the instructions.
4. Check the log to see how it is working. It should start loading your playlists.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.