Bagaimana cara menjalankan PulseAudio?

28

Saya ingin menggunakan Raspberry Pi saya sebagai bak cuci PulseAudio yang dapat memutar audio melalui jaringan.

Sebagai permulaan saya ingin menjalankan Pulseaudio secara lokal dan mengalami berbagai kesalahan. Saya menggunakan gambar Debian yang direkomendasikan.

Apa prosedur terbaik untuk menjalankan dan menjalankan PulseAudio?


Inilah yang saya coba sejauh ini:

Prosedur

Prosedur saya sejauh ini terlihat seperti berikut:

Instal Pulseaudio, dan VLC:

sudo apt-get install pulseaudio

Konfigurasikan GStreamer untuk menggunakan pulseaudio sink:

gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink

Muat modul kernel untuk perangkat audio

sudo modprobe snd_bcm2835

Jalankan VLC dengan mp3

vlc 

Masalah

VLC retak berulang kali, mencetak kesalahan ini:

[0x7503d0] alsa audio output error: cannot write: Broken pipe
Bengt
sumber
Bisakah Anda menunjukkan kesalahan yang Anda dapatkan?
darryn.ten

Jawaban:

9

Saya sudah membuatnya bekerja pada Raspberry Pi saya menggunakan wastafel ALSA, dengan prosedur sebagai berikut:

Untuk menginstal file yang diperlukan:

sudo apt-get install pulseaudio pulseaudio-module-zeroconf alsa-utils avahi-daemon

Untuk mengaktifkan ALSA:

sudo modprobe snd-bcm2835                      # load module for single boot
echo "snd-bcm2835" | sudo tee -a /etc/modules  # load module for persistance

Untuk mengatur jaringan:

sudo nano /etc/pulse/default.pa

dan batalkan komentar pada baris:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
load-module module-zeroconf-publish

Untuk memulai server pulseaudio, gunakan:

pulseaudio -D

Anda harus dapat menguji apakah itu berfungsi dengan memutar file wav dengan paplay ( sudo apt-get install pulseaudio-utils), dan juga melalui jaringan dengan memilih wastafel di panel kontrol suara sistem Anda.

Anda mungkin juga dapat mengatur dalam mode sistem-lebar dengan:

sudo pulseaudio --system 
Adam MW
sumber
pulseaudio-module-zeroconftidak ada di bagian instal apt-get. Harus menyebutkan mungkin juga pulseaudio --log-level=debuguntuk memecahkan masalah. Pada sumber suara (bukan pi raspberry), Anda harus meluncurkan paprefsuntuk dengan mudah meninjau pulseaudio conf Anda (jika Anda memiliki X11). Dan jangan lupa untuk memulai kembali pulseaudiojika ragu.
vaab
7

Jika Anda ingin pulseaudio memulai saat boot, tetapi sebagai layanan tingkat pengguna, Anda dapat membuat file unit systemd. Ini dapat membantu, karena pulseaudio tidak memilih untuk menjalankan dalam mode sistem. https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/

Ini adalah layanan yang saya tulis di /etc/systemd/system/pulseaudio.service

[Unit]
Description=PulseAudio Sound System
Before=sound.target

[Service]
User=pi
BusName=org.pulseaudio.Server
ExecStart=/usr/bin/pulseaudio
Restart=always  

[Install]
WantedBy=session.target

Before = menyuruhnya menunggu sampai setelah sound.target diinisialisasi. BusName = menghubungkannya ke D-Bus WantedBy = session.target adalah default yang membantu, tapi saya tidak benar-benar tahu apa fungsinya.

semitones
sumber
Rupanya kita bisa meletakkan ini ~/.config/systemd/user/pulseaudio.servicedan menggunakan systemd dengan --userflag untuk menghindari hak akses root.
jchook
6

Saya mengalami kesulitan menjalankan pulseaudio di Wheezy raspbian (2012-10-28) menggunakan output analog. Berikut ini adalah apa yang saya lakukan hanya untuk membuatnya bekerja dalam mode per sesi (bukan mode sistem). Mode sistem dapat bekerja juga, saya belum mencobanya. Menyiapkan server akan membutuhkan lebih banyak pekerjaan. Saya menemukan informasi ini di berbagai tempat, semoga mengumpulkannya di sini akan membantu seseorang.

Instal pulseaudio dan pastikan pengguna (mis. Eric) adalah bagian dari grup audio:

sudo apt-get install pulseaudio pulseaudio-utils
sudo adduser eric audio

Ubah /etc/asound.conf seperti berikut ini. Ini mengatur pulseaudio untuk digunakan sebagai perangkat alsa secara default sehingga aplikasi menggunakannya tanpa konfigurasi tambahan. Dua deklarasi pertama (termasuk yang dikomentari) ada di file asli.

pcm.mmap0 {
    type mmap_emul;
    slave {
      pcm "hw:0,0";
    }
}

#pcm.!default {
#  type plug;
#  slave {
#    pcm mmap0;
#  }
#}

pcm.pulse { type pulse }
ctl.pulse { type pulse }
pcm.!default { type pulse }
ctl.!default { type pulse }

Tambahkan baris berikut ke /etc/pulse/daemon.conf:

default-sample-rate = 48000
resample-method = trivial

trivialadalah metode kualitas terendah, tetapi menggunakan sekitar 6% cpu. src-sinc-fastestjuga bekerja untuk saya, tetapi gunakan sekitar 25% CPU. Orang lain mungkin bekerja juga. Ini sedikit kemudian saya tidak begitu mengerti perlunya, tetapi tampaknya menjadi bahan ajaib. Anda dapat membaca lebih lanjut di sini .

Akhirnya, untuk membungkam audio yang muncul di antara lagu diputar, komentari baris ini di /etc/pulse/default.pa sebagai berikut:

#load-module module-suspend-on-idle

Masih ada beberapa dropout ketika dua sumber bermain sekaligus, jika saya menemukan obat untuk itu saya akan menambahkan jawaban ini.

ergosys
sumber
Saat memutar audio melalui jaringan, PulseAudio menggunakan sekitar 16% CPU bahkan trivialuntuk saya.
Nathan Osman