คุณสามารถใช้โมดูล mpd, pulseaudio และ raop2 หากจำเป็น:
- mpd สำหรับจัดการเพลย์ลิสต์, ห้องสมุด, ฯลฯ (
sudo apt-get install mpd
)
- pulseaudio สำหรับการจัดการเอาต์พุตเสียง: raop สำหรับ AirPlay หรืออุปกรณ์ส่งออกอื่น ๆ เช่นแจ็คอะนาล็อก, HDMI, บริการสตรีมมิ่ง http ฯลฯ (
sudo apt-get install pulseaudio
)
- โมดูล raop2 สำหรับ pulseaudioหากโมดูล raop ดั้งเดิมที่สร้างขึ้นใน pulseaudio ไม่ทำงาน
ฉันต้องสร้าง pulseaudio จากแหล่งที่มาเพื่อรับโมดูล RAOP รุ่นปรับปรุงสำหรับ pulseaudio
นี่คือสิ่งที่ฉันทำเพื่อให้มันทำงานได้ (อาจบ่นเกี่ยวกับแพ็คเกจที่หายไปเพียงแค่sudo apt-get install
พวกเขา):
ติดตั้ง MPD
sudo apt-get install mpd
ติดตั้ง PulseAudio
ตัวเลือก A: คุณมีอุปกรณ์ AirPlay รุ่นเก่าหรือคุณไม่ต้องการสตรีมมิ่ง UDP
มันง่ายกว่า แต่ใช้งานได้น้อยกว่า
sudo apt-get install pulseaudio
ตัวเลือก B: คุณต้องการความเข้ากันได้ดีขึ้นและรองรับทั้งการสตรีม TCP และ UDP
จากนั้นคุณต้องใช้โมดูล raop2 สำหรับ pulseaudio ซึ่งหมายถึงการสร้าง PA จากแหล่งที่มา
ติดตั้ง git ถ้าคุณยังไม่ได้สร้าง pulseaudio (ดูคำแนะนำอย่างเป็นทางการ ):
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
ในการตั้งค่าของฉันฉันต้อง symlink libpulse.so.0 ด้วยตนเอง:
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
หรือตามความต้องการของคุณ:
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
กำหนดค่าทุกอย่าง
การตั้งค่าเริ่มต้น MPD
ตอนนี้เราจำเป็นต้องติดตั้ง MPD:
sudo vi /etc/mpd.conf
ในไฟล์นั้นตั้งค่าต่อไปนี้:
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"
เราจะต้องแก้ไขผลลัพธ์ แต่เราต้องการชื่อของ pulseaudio sink ก่อน
PulseAudio ซิงก์
Avahi / zeroconf เป็นสิ่งที่ดีเพราะจะเปิดใช้งานการค้นหาอุปกรณ์ AirPlay (ผ่าน zeroconf / mDNS / Bonjour):
sudo apt-get install avahi
ตอนนี้เราสามารถเริ่ม pulseaudio และลองโหลดโมดูล RAOP:
pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:
นี่คือผลลัพธ์ในการตั้งค่าของฉัน:
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>
คุณต้องแก้ไข/etc/mpd.conf
อีกครั้งและเพิ่มผลลัพธ์ต่อไปนี้:
audio_output {
type "pulse"
name "Freebox Player"
sink "raop_output.Freebox-Player.local"
format "44100:24:1"
}
เพิ่มหนึ่งในบล็อกเหล่านี้สำหรับทุกอุปกรณ์ AirPlay ที่คุณต้องการสตรีมเพลง
การกำหนดค่า PulseAudio
ส่วนสุดท้ายคือการตั้งค่า PA:
sudo vi /etc/pulse/client.conf
Uncomment autospawn = yes
สิ่งนี้จะทำให้ pulseaudio เริ่มทำงานโดยอัตโนมัติเมื่อจำเป็น
sudo vi /etc/pulse/default.pa
เพิ่มบรรทัดต่อไปนี้ที่ด้านล่าง:
load-module module-raop-discover
สิ่งนี้จะทำให้ pulseaudio โหลดโมดูล RAOP ค้นพบเมื่อเริ่มต้น
ขั้นตอนสุดท้าย
มันควรจะทำงานตอนนี้ เริ่ม MPD (หยุดก่อนถ้าทำงาน):
sudo /etc/init.d/mpd start
รอสักครู่ใช้เวลาอย่างน้อย 10-15 วินาทีใน RasPI ของฉันก่อนที่ daemon จะสามารถทำงานได้อย่างถูกต้อง
อัปเดตคลังเพลงของคุณ (และรอจนกว่าจะเสร็จ):
sudo apt-get install mpc
mpc update
เปิดใช้งานเอาต์พุตที่จะ (ต่อไปนี้จะแสดงรายการเอาต์พุต MPD ที่กำหนดค่าและเปิดใช้งานรายการแรก):
mpc outputs
mpc enable 1
ตอนนี้ใช้ไคลเอนต์ MPD ที่คุณชื่นชอบเพื่อเล่นเพลง ฉันกำลังใช้ncmpcpp
command-line และ MPDroid บนโทรศัพท์ / แท็บเล็ต
การแก้ไขปัญหา
เริ่ม mpd ด้วย verbose, pulseaudio พร้อมระดับการบันทึกสูงสุดและบันทึกการตรวจสอบ:
mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog
พยายามทำให้ pulseaudio ใช้งานได้ก่อน เพียงโหลด pulseaudio โหลดโมดูลค้นพบ RAOP แสดงรายการ sink ตั้งค่า sink มาตรฐานและลองเล่นบางสิ่ง:
paplay /usr/share/sounds/alsa/Front_Center.wav
เมื่อคุณใช้งาน pulseaudio แล้วให้ลองใช้ MPD กับมัน