Warum brauchen Sie PulseAudio?

13

Ich lese und versuche zu verstehen, warum jemand Pulse Audio verwenden möchte, und ich verstehe es nicht. Ich habe diese https://www.linux.com/news/hardware/drivers/8100-why-you-should-care-about-pulseaudio-and-how-to-start-doing-it gelesen und bin es immer noch keine überzeugende Antwort bekommen. Ich habe ein Setup mit einer Soundkarte. (Ich muss keine Sounds von oder zu mehreren Soundkarten multiplexen). Ich weiß, dass alle Anwendungen mit verschiedenen APIs, ALSA, OSS, JACK usw. geschrieben wurden. Wenn ich also all diese Frameworks so konfiguriere, dass sie den Sound über Pulse Audio leiten, welchen Nutzen habe ich, anstatt all diesen Frameworks zu erlauben, direkt mit der Soundkarte zu kommunizieren Treiber? Außerdem sehe ich nicht, dass Pulse Audio eine eigene Anwendungs-API hat. Also muss ich sowieso ein Framework auswählen (wie ALSA). Vielen Dank

Michael P
quelle
5
Zum einen wusste ich, dass ich ein Problem hatte, wenn programA die Soundkarte verwendete, konnte programB sie nicht verwenden, bis programA geschlossen wurde. Auch wenn programA es nicht mehr benutzt. In meinem Fall verschwand so etwas, sobald pulseaudio entstand. Vielleicht hätte ich ALSA oder OSS so konfigurieren können, dass auch mehrere Programme auf die Soundkarte zugreifen können, aber ich hätte nie herausgefunden, wie.
terdon
2
Sie (pulseaudio) dachten, die Lösung für die vielen Audiosysteme unter Linux sei die Schaffung eines weiteren Audiosystems.
ctrl-d
Wenn dies ein System wäre, das die anderen emulieren könnte, oder wenn es eine einfachere Schnittstelle hätte, wäre es die Lösung. Es scheint, dass dies nicht erreicht wurde.
Schily

Antworten:

17

Alles dreht sich um Multiplexing.

Ich muss keine Sounds von oder zu mehreren Soundkarten multiplexen

Ah, aber du tust es! Wenn Sie aus irgendeinem Grund Audio von zwei Quellen gleichzeitig wiedergeben möchten, müssen Sie Multiplexen.

OSX und Windows verwalten das Multiplexing im Kernel (aber immer noch in der Software), weshalb dies auf diesen Plattformen nie / selten auftritt.

Unter Linux ist Multiplexing mit Software wie ALSA jedoch der spezifischen Soundkarte / Implementierung / dem Treiber überlassen.

Leider unterstützen dies nicht alle Karten und Treiber.

Hier kommt PulseAudio ins Spiel, das Multiplexing in der Software, unabhängig von Ihrer Soundkarten- / Treibersituation.

Ohne diese Funktion könnten Sie, wenn Sie ALSA direkt mit sans-PulseAudio verwenden und eine Soundkarte mit schlechter PCM-Multiplexing-Unterstützung unter Linux verwenden, immer nur Sound von einer Anwendung gleichzeitig hören.

Wenn Sie beispielsweise ein Video in Ihrem Webbrowser abspielen und eine Benachrichtigung in Pidgin erhalten haben, hören Sie den Benachrichtigungston nicht, da Ihr Webbrowser bereits die Kontrolle über Ihre Soundkarte hat.

Indem Sie den gesamten Sound zuerst über PulseAudio leiten, wird dieses Problem vermieden.

Quelle: Ein langes IRC-Gespräch, das ich einmal mit dem Ubuntu-Betreuer für ALSA geführt habe. Dort habe ich ihnen genau die gleiche Frage gestellt, die Sie gerade stellen.

Zee Alexander
quelle
5
Danke @Zee! Das ist eine gute Antwort! Allerdings habe ich dieses alsa-project.org/main/index.php/Asoundrc gelesen und sehe, dass ich mit ALSA-Konfigurationen mit "Plugins" genau dasselbe erreichen kann. Ich habe es getestet und konnte mehrere Instanzen eines Spiels gleichzeitig abspielen. Meine Frage bleibt also immer noch, warum ich Pulse Audio brauche, wenn ich das alles mit ALSA machen kann :)?
Michael P
5
Hey @MichaelP, gerne helfen. Der Grund, warum PulseAudio immer noch nützlich ist, ist, dass möglicherweise mehrere Audioserver ausgeführt werden, nicht nur ALSA. Wenn zum Beispiel jemand Audiobearbeitungsarbeiten ausführt, verwendet er häufig den JACK-Audioserver, der besser für Audioarbeiten mit geringer Latenz geeignet ist, aber dennoch ALSA für allgemeine Audiodaten verwendet. Das trifft vielleicht nicht auf Sie zu, aber PulseAudio bedeutet, dass Sie sich keine Gedanken darüber machen müssen, wie alles funktioniert. Wenn Sie es nur für ALSA konfigurieren, müssen Sie jeden Anwendungsfall separat konfigurieren. PulseAudio funktioniert mit Alsa und jeder anderen Audioquelle, die Sie jemals verwenden könnten.
Zee Alexander
2
Abgesehen davon ist PulseAudio für Sie vielleicht nicht besonders hilfreich, aber im Allgemeinen konfigurieren Nicht-Barebone-Distributionen es sofort für Sie, sodass es keinen wirklichen Grund gibt, es durch ein ALSA-Plugin zu ersetzen. Wenn Sie eine Distribution wie Arch verwenden, bei der Sie alles von Grund auf neu konfigurieren müssen, verwenden Sie stattdessen das ALSA-Plugin.
Zee Alexander
1
Danke @Zee Alexander, das regelt meine ganze Verwirrung. Danke für die Antwort. Ich wünschte, PulseAudio würde es auf ihrer Website so gut erklären.
Michael P
2

Seit der Einführung von Dmix in alsa hat sich pulseaudio als unbrauchbar erwiesen. Bare Alsa mit Dmix, das irgendwie tief im Inneren aktiviert ist (ich muss nichts einstellen), funktioniert für mich viel besser. Beispielsweise treten keine Verzögerungen auf, während der Schallpegel geändert wird.

Deinstallieren Sie einfach pulseaudio, wenn Sie die neuesten alsa verwenden und sich wohl fühlen.

user4674453
quelle
1
Hatte gerade dieses Popping-Problem, habe pulseaudio deinstalliert und jetzt klingt alles in Ordnung (das Abspielen von mehreren Quellen funktioniert auch hervorragend). Alsa Fahrer 4.4.0-104, utils 1.1.0
klogd
1
WTaF. Warum aktivieren Distributionen dann immer noch den pulseaudio Multiplexing Daemon? Es ist ein nachlässiger, fehlerhafter AF und hat zu viele Klangprobleme verursacht! Ich deaktiviere den Daemon, anstatt das gesamte Paket zu deinstallieren, da es Abhängigkeiten mit der ALSA-Konfiguration gibt, die das Paket anscheinend gut macht.
Birkensocks