Chuyển hướng âm thanh sang thiết bị AirPlay khác


20

Tôi đang thiết lập Mopidy trên Raspbian để tôi có thể sử dụng Raspberry Pi làm máy hát tự động Spotify (và tệp cục bộ). Tôi biết đầu ra âm thanh analog của Raspberry Pi không lớn.

Có cách nào để chuyển hướng tất cả âm thanh từ Raspberry Pi sang thiết bị AirPlay (chẳng hạn như Airport Express) không?

Sẽ thật tuyệt nếu tôi cũng có thể làm mọi thứ từ dòng lệnh, vì vậy tôi có thể thiết lập một số tập lệnh để chuyển đổi các thiết bị khác nhau.


Đó là một câu hỏi lớn. Tôi thích airplay và điều đó thật hợp lý khi sử dụng nó trên Pi. Sẽ tự đào xung quanh tôi về câu hỏi đó nhưng câu hỏi hay! +1
Piotr Kula

Từ những gì tôi hiểu, nó có thể được thực hiện bằng PulseAudio. Tôi cũng đang đào xung quanh.
leolobato

hãy xem những gì chúng ta đang thảo luận ở đây raspberrypi.org/phpBB3/ từ
jmp909

Tôi biết điều này hơi lạc đề - nhưng nếu bạn không chơi playbac từ xa, vậy còn một chiếc USB DAC đẹp thì sao?
petr

Câu trả lời:


13

Bạn có thể sử dụng mô đun mpd, pulseaudio và raop2, nếu cần:

  • mpd để quản lý danh sách phát, thư viện, v.v ( sudo apt-get install mpd)
  • pulseaudio để quản lý đầu ra âm thanh: raop cho AirPlay hoặc bất kỳ thiết bị đầu ra nào khác như giắc cắm analog, HDMI, dịch vụ truyền phát http, v.v ( sudo apt-get install pulseaudio)
  • mô-đun raop2 cho pulseaudio nếu mô-đun gốc ban đầu được tích hợp vào pulseaudio không hoạt động

Tôi đã phải xây dựng pulseaudio từ nguồn để có được phiên bản cập nhật của mô-đun RAOP cho pulseaudio.


Đây là những gì tôi đã làm để làm cho nó hoạt động (nó có thể phàn nàn về các gói bị thiếu, chỉ sudo apt-get installchúng):

Cài đặt MPD

sudo apt-get install mpd

Cài đặt PulseAudio

Lựa chọn A: bạn có thiết bị AirPlay cũ hoặc bạn không cần phát trực tuyến UDP.

Nó dễ dàng hơn nhưng ít tương thích hơn.

sudo apt-get install pulseaudio

Lựa chọn B: bạn muốn tương thích tốt hơn và hỗ trợ cho cả truyền phát TCP và UDP

Sau đó, bạn cần mô-đun raop2 cho pulseaudio, có nghĩa là xây dựng PA từ nguồn.

Cài đặt git nếu bạn chưa có và xây dựng pulseaudio (xem hướng dẫn chính thức ):

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

Khi thiết lập, tôi phải liên kết sympulse.so.0 theo cách thủ công:

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

hoặc, theo sở thích của bạn:

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

Cấu hình mọi thứ

Thiết lập ban đầu MPD

Bây giờ chúng ta cần thiết lập MPD:

sudo vi /etc/mpd.conf

Trong tệp đó, đặt như sau:

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"

Chúng tôi sẽ cần chỉnh sửa đầu ra, nhưng trước tiên chúng tôi cần tên của bộ đệm pulseaudio.

Bồn rửa mặt PulseAudio

Avahi / zeroconf rất hay vì nó sẽ cho phép khám phá các thiết bị AirPlay (thông qua zeroconf / mDNS / Bonjour):

sudo apt-get install avahi

Bây giờ chúng ta có thể bắt đầu pulseaudio và thử tải các mô-đun RAOP:

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

Đây là đầu ra trên thiết lập của tôi:

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>

Sau đó, bạn cần chỉnh sửa /etc/mpd.conflại và thêm các đầu ra sau:

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

Thêm một trong các khối này cho mọi thiết bị AirPlay mà bạn muốn truyền phát nhạc.

Cấu hình PulseAudio

Phần cuối cùng là thiết lập PA:

sudo vi /etc/pulse/client.conf

Không chú ý autospawn = yes, điều này sẽ làm cho pulseaudio tự động khởi động khi cần thiết.

sudo vi /etc/pulse/default.pa

Thêm dòng sau ở dưới cùng:

load-module module-raop-discover

Điều này sẽ làm cho pulseaudio tải mô-đun khám phá RAOP khi nó được khởi động.

Bước cuối cùng

Nó nên được làm việc bây giờ. Bắt đầu MPD (dừng nó trước nếu nó đang chạy):

sudo /etc/init.d/mpd start

Đợi một chút, phải mất ít nhất 10 - 15 giây trên RasPI của tôi trước khi trình nền có thể hoạt động bình thường.

Cập nhật thư viện nhạc của bạn (và đợi nó kết thúc):

sudo apt-get install mpc
mpc update

Kích hoạt đầu ra theo ý muốn (sau đây sẽ liệt kê các đầu ra MPD được cấu hình và bật đầu ra đầu tiên):

mpc outputs
mpc enable 1

Bây giờ sử dụng ứng dụng khách MPD yêu thích của bạn để phát một số nhạc. Tôi đang sử dụng ncmpcpptrên dòng lệnh và MPDroid trên điện thoại / máy tính bảng của mình.

Xử lý sự cố

Bắt đầu mpd trong verbose, pulseaudio với mức ghi nhật ký tối đa và nhật ký màn hình:

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

Cố gắng làm cho pulseaudio hoạt động đầu tiên. Chỉ cần tải pulseaudio, tải mô-đun khám phá RAOP, liệt kê các bồn, thiết lập bồn rửa mặc định và thử chơi một cái gì đó:

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

Khi bạn có pulseaudio hoạt động, hãy thử và làm cho MPD hoạt động với nó.


1
Đó chính xác là những gì tôi đang tìm kiếm! Tôi có một cây lau nhà chạy trên Raspberry Pi. Sẽ thử điều này và cập nhật để cho bạn biết nếu nó hoạt động!
leolobato

2

Có vẻ như pulseaudio-module-raop là những gì bạn đang tìm kiếm. Hướng dẫn này có một mô tả chi tiết về cách thiết lập điều này trong Ubuntu.


1
Nói chung, một câu trả lời cung cấp giải thích chi tiết tốt hơn một liên kết. Liên kết có thể di dời hoặc chết. Quan trọng hơn, giải thích một chút về pulseaudio-module-raop có thể là một ý tưởng hay ..
ramblinjan

2

Đã dành một chút thời gian để cố gắng định cấu hình Airplay thông qua Raop / PulseAudio trên Raspberry Pi 3 mới bằng cách sử dụng Raspbian Jessie với rất ít thành công. Tôi rất muốn giới thiệu forked-daapd :

Đây là phiên bản cập nhật nhiều của bản gốc forked-daapd 0.19, máy chủ phương tiện Linux / FreeBSD DAAP (iTunes) có hỗ trợ cho các thiết bị AirPlay, Apple Remote (và tương thích), MPD, Spotify, mp3 streaming và internet radio.

Cài đặt rất đơn giản và tôi đã có toàn bộ và chạy trong khoảng 10 phút. Dưới đây là hướng dẫn cài đặt như chi tiết tại đây :

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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.