PulseAudio'yu nasıl çalıştırabilirim?


28

Ahududu Pi'mi ağ üzerinden ses çalabilen bir PulseAudio lavabo olarak kullanmak istiyorum.

Yeni başlayanlar için Pulseaudio'nun yerel olarak çalışmasını sağlamak ve çeşitli hatalarla karşılaşmak istiyorum. Önerilen Debian görüntüsünü kullanıyorum.

PulseAudio'yu çalıştırıp çalıştırmanın en iyi yolu nedir?


Bu şimdiye kadar denediğim şeydi:

prosedür

Şimdiye kadarki prosedürüm aşağıdaki gibi bir şeye benziyordu:

Pulseaudio ve VLC'yi yükleyin:

sudo apt-get install pulseaudio

Pulseaudio sink'i kullanmak için GStreamer'ı yapılandırın:

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

Ses cihazı için çekirdek modülünü yükleyin

sudo modprobe snd_bcm2835

VLC'yi bir mp3 ile çalıştırın

vlc 

sorunlar

VLC art arda çatlıyor, bu hatayı yazdırıyor:

[0x7503d0] alsa audio output error: cannot write: Broken pipe

Aldığınız hataları gösterebilir misiniz?
darryn.ten

Yanıtlar:


9

Aşağıdaki yöntemlerle, ALSA lavabosunu kullanarak Ahududu Pi'mde çalışmasını sağladım:

Gerekli dosyaları yüklemek için:

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

ALSA'yı etkinleştirmek için:

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

Ağ kurmak için:

sudo nano /etc/pulse/default.pa

ve satırları yorumlamak:

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

Pulseaudio sunucusunu başlatmak için aşağıdakileri kullanın:

pulseaudio -D

sudo apt-get install pulseaudio-utilsSisteminizin ses kontrol panelindeki lavabosu seçerek, paplay ( ) ile bir wav dosyası çalarak ve ayrıca ağ üzerinden çalışıp çalışmadığını test edebilmelisiniz .

Ayrıca, sistem çapında bir modda da ayarlayabilirsiniz :

sudo pulseaudio --system 

pulseaudio-module-zeroconfapt-get install bölümünde eksik. Herhangi pulseaudio --log-level=debugbir sorunu gidermek için belki de belirtmeliyiz . Ses kaynağında (ahududu pi değil), paprefspulseaudio conf'ınıza kolayca genel bakış için başlamalısınız (X11'iniz varsa). Ve pulseaudioşüphe duyduğunuzda yeniden başlatmayı unutmayın .
vaab

7

Pulseaudio'nun açılışta başlamasını ancak kullanıcı düzeyinde bir servis olarak, bir systemd birimi dosyası oluşturabilirsiniz. Bu, pulseaudio sistem modunda çalışmayı tercih etmediğinden yardımcı olabilir. https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/

İşte /etc/systemd/system/pulseaudio.service de yazdığım hizmet

[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 = sound.target başlatılana kadar beklemesini söyler. BusName = onu D-Bus'a bağlar WantedBy = session.target yararlı bir varsayılandır, ancak ne yaptığını gerçekten bilmiyorum.


Kök ayrıcalıklarından kaçınmak için bunu ~/.config/systemd/user/pulseaudio.serviceaçıkça gösterebilir ve --userbayrakla birlikte systemd kullanabiliriz .
Kasım'ı

6

Analog çıkışı kullanarak Wheezy raspbian'da (2012-10-28) pulseaudio yayınlamakta zorlandım. Aşağıda, yalnızca oturum başına modunda çalışmasını sağlamak için yaptıklarım (sistem modu değil). Sistem modu da işe yarayabilir, ben denemedim. Sunucuyu ayarlamak daha fazla çalışma gerektirecektir. Bu bilgiyi çeşitli yerlerde buldum, umarım burada birilerine yardımcı olacak.

Pulseaudio'yu kurun ve kullanıcının (örn. Eric) ses grubunun bir parçası olduğundan emin olun:

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

Değişim /etc/asound.conf aşağıdaki gibidir. Bu, varsayılan olarak alsa aygıtı olarak kullanılacak pulseaudio'yu ayarlar, böylece uygulamalar herhangi bir ek yapılandırma olmadan kullanır. İlk iki beyan (yorumlananlar dahil) asıl dosyadaydı.

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 }

Aşağıdaki satırları /etc/pulse/daemon.conf dosyasına ekleyin:

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

trivialen düşük kalite yöntemidir, ancak yaklaşık% 6 cpu kullanır. src-sinc-fastestAyrıca benim için çalıştı, ancak yaklaşık% 25 CPU kullanın. Diğerleri de işe yarayabilir. Bu sonraki bit, bunun gerekliliğini tam olarak anlamadım, ama sihirli bileşen gibi görünüyordu. Sen edebilirsiniz buradan daha fazla okumak .

Son olarak, şarkıların çalınması arasında çıkan sesi susturmak için, /etc/pulse/default.pa adresindeki bu satırı şöyle yorumlayın:

#load-module module-suspend-on-idle

İki kaynağın bir kerede oynatılması durumunda hala bazı ayrılmalar var, bunun için bir çare bulursam bu cevaba eklerim.


Ağ üzerinden ses oynatırken, PulseAudio trivialbenim için bile yaklaşık% 16 CPU kullanıyordu .
Nathan Osman
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.