Weinsound wird viel zu schnell gespielt und knistert fürchterlich

13

Die Sounds in meinen Anwendungen werden mit hoher Geschwindigkeit abgespielt und knistern fürchterlich. In Spotify werden die Songs tatsächlich mit einer dreifachen Geschwindigkeit abgespielt. Ich habe dies ziemlich oft gegoogelt und alles, was ich mir einfallen lassen kann, ist ein Fehlerbericht vom Januar 2012, der als geschlossen markiert ist.

Ich habe Spotify und Hearthstone mit PlayOnLinux mit den Wine-Versionen 1.5.0, 1.6, 1.6.0, 1.7.0, 1.7.8 und dem System Wine, Version 1.4.1, getestet. Sie alle haben genau das gleiche Problem mit dem fürchterlichen Knistern. Dies lässt mich vermuten, dass dies kein Fehler bei Wine ist.

Die Schritte aus dem Fehlerbericht zu reproduzieren:

Schritte zum Reproduzieren:
1. winecfg
2. Gehen Sie zur Registerkarte Audio
3. Sound testen

Tatsächliche Ergebnisse:
Knackgeräusche erzeugt

Erwartete Ergebnisse:
normale Ausgabe

Produzieren auch knisternde Geräusche für mich. Dabei druckte winecfg Folgendes auf das Terminal:

p11-kit: Modul konnte nicht geladen werden: /usr/lib/i386-linux-gnu/pkcs11/p11-kit-trust.so: /usr/lib/i386-linux-gnu / pkcs11 / p11-kit-trust. Also: Shared Object-Datei kann nicht geöffnet werden. Keine solche Datei oder kein solches Verzeichnis
err: ole: CoInitializeEx Versuch, das Threading-Modell dieser Wohnung von Multi-Threading auf Apartment-Threading zu ändern
ALSA lib pcm.c: 7843: (snd_pcm_recover) Unterlauf aufgetreten
ALSA lib pcm.c: 7843: (snd_pcm_recover) Unterlauf aufgetreten
ALSA lib pcm.c: 7843: (snd_pcm_recover) Unterlauf aufgetreten
ALSA lib pcm.c: 7843: (snd_pcm_recover) Unterlauf aufgetreten

(Die erste Zeile wurde angezeigt, als ich winecfg öffnete, die letzten 5 wurden angezeigt, als ich auf Test Sound geklickt habe.)

Irgendwelche Hinweise, was falsch sein könnte? Lassen Sie mich wissen, wenn ich weitere Informationen geben kann.


pulseaudio 1: 4.0-0ubuntu6 amd64
Hubro
quelle
Möglicherweise verwandt oder dupliziert: askubuntu.com/questions/124602/…
donquixote

Antworten:

23

Da dies das erste von Google zurückgegebene Ergebnis ist, dachte ich, ich teile meine Erfahrungen hier. Wenn Sie nach einer schnellen Lösung suchen, fügen Sie für systemweite Änderungen Folgendes in Ihr ~ / .bashrc- oder / etc / -Profil ein:

alias wine='PULSE_LATENCY_MSEC=60 wine'

Dies ist das gleiche Update, das für Skype und PulseAudio 4.0 und höher verwendet wird, das sich genauso verhält wie Wein. Hoffe das hilft!

Bearbeiten (12.01.2016) :

Sie können diese Variable global aktivieren, indem Sie diese Zeile zu ~ / .bashrc hinzufügen und sich abmelden / neu starten

export PULSE_LATENCY_MSEC=60

Wenn danach in anderen Anwendungen Audioprobleme auftreten, löschen Sie einfach die Leitung und melden Sie sich ab, oder starten Sie den Computer neu. Wenn Sie es vorübergehend testen möchten, öffnen Sie ein neues Terminal und fügen Sie diese Zeile ein. Jetzt wird für jede Anwendung, die Sie von diesem Terminal aus aufrufen, die Variable festgelegt, und PulseAudio legt die Latenz fest.

Weitere Informationen zu diesem Problem und zur Fehlerbehebung: http://arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/

Iskren
quelle
Funktioniert dies auch beim Starten von Wine aus PlayOnLinux und ähnlichen Anwendungen? Ich würde testen, aber ich weiß nicht, wie ich die Ergebnisse bestätigen soll ...
Hubro
1
Keine Ahnung, habe noch nie PlayOnLinux ausgeführt. Sie können es testen, indem Sie den obigen Befehl in ein Terminal eingeben und etwas von PlayOnLinux ausführen. Wenn dein Sound in Ordnung ist, dann funktioniert er. Wenn dies nicht der Fall ist, können Sie versuchen, die Variable direkt festzulegen, indem Sie "export PULSE_LATENCY_MSEC = 60" in einem Terminal ausführen und anschließend PlayOnLinux von demselben Terminal aus ausführen. Es wird die Variable "erben" und es sollte funktionieren.
Iskren
Hab meinen Speck gerettet. Ich hatte dieses Problem seit Jahren, das ist das einzige, was funktioniert hat. Ich bin allerdings neugierig, weißt du noch, woher du diese Lösung hast? Wissen wir, warum es funktioniert?
Dr. Hannibal Lecter
Ich hatte vor einiger Zeit Probleme mit PA4 und Skype und suchte nach einer Lösung. Ein bisschen später fing Wein an, dasselbe zu tun, also versuchte ich es einfach mit dem Skype-Fix und es funktionierte. Dieser Beitrag erklärt recht gut, was das Problem ist und wie diese Variable es behebt: arunraghavan.net/2013/08/pulseaudio-4-0-and-skype
Iskren
Ich fürchte, diese Lösung funktioniert in POL nicht. Zuerst schien es so.
Tamsyn Michael
7

Führe ein Terminal aus (Strg + Alt + T)

Befehl ausgeben pulseaudio -k

Versuchen Sie, das Problem erneut zu erstellen. Sollte nicht mehr im Schnellvorlauf spielen.

Was das Knistern betrifft, sagt Ihnen das Protokoll schlicht und einfach, dass Sie einen Pufferunterlauf haben. Ändern Sie Ihre Sampling-Qualität ... Verlieren Sie etwas an Qualität, um die Geschwindigkeit zu erhöhen, und prüfen Sie, ob dies Ihren Unterlauf behebt.

DeeJayh
quelle
Ich bin heute Morgen aufgestanden und konnte das Problem nicht nachvollziehen. Sounds spielen jetzt perfekt. Das einzige, was ich seit gestern getan habe, ist, die Tonausgabe meines Headsets auf HDMI umzustellen. Heute habe ich zurückgeschaltet und das Knistern ist weg. Es wird wahrscheinlich bald wieder vorkommen, ich werde dann versuchen, pulseaudio zu töten.
Hubro
Die Ausgabe kehrte zurück. Ich habe es versucht pulseaudio -kund alle Geräusche sind verschwunden. Der Sound-Schieberegler unter Ubuntu ist ausgegraut und die Soundoptionen enthalten keine Soundgeräte. Musste neu starten, um den Sound wieder zu bekommen.
Hubro
Puls-Audio sollte von alleine neu starten, wenn Sie das nächste Mal ein Problem haben sudo alsa force-reload
DeeJayh
pulseaudioWenn Sie den Befehl nur ausgeben, wird er automatisch für Sie gesichert, wenn er nicht automatisch ausgeführt wird.
DeeJayh
Es ist kein CPU-Engpass. Ich habe das gleiche Problem mit einer 4790k mit World of Warcraft, ich überschreite nie 30% der CPU und ich habe die niceEinstellung für WoW und Pulseaudio auf -20. Irgendetwas in der Software verhindert, dass pulseaudio die Puffer tatsächlich füllt.
Jonathan Baldwin
3

Bei bestimmten Spielen können Sie, wenn Sie PlayOnLinux verwenden, den Launcher mit Ihrem Texteditor öffnen und die Exec=Zeile wie folgt ändern :

Exec=env PULSE_LATENCY_MSEC=60 /usr/share/playonlinux/playonlinux --run "GameName" %F
Skitz
quelle
1

Versuchen Sie diese Lösung . Es hatte hauptsächlich mit PulseAudio zu tun. Ich persönlich habe es entfernt und erneut versucht, und der Unterlauf war verschwunden, aber ich habe die Möglichkeit verloren, die Audioausgabe auf verschiedene Senken zu verschieben. Auf diese Weise können pulseaudio und ALSA problemlos miteinander spielen, ohne dass pulseaudio die Hardware direkt belastet.

allenskd
quelle
3
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Stormvirux
Es ist keine Lösung für alle, die Audio aus einer Wine-Anwendung aufnehmen müssen oder die die Latenz im Geringsten beachten (Pulse spielt sich mit der Latenz schnell und locker genug, aber wirft auch einen Dmix hinein ...)
Jonathan Baldwin
0

Hinzugefügt eine aktualisierte Lösung wie oben zu

http://tux-is-gaming.blogspot.com.au/2014/02/fixing-alsa-lib-pcmc7843sndpcmrecover.html?showComment=1394964710443#c3501258764752400662

Aaron Williams
quelle
2
Willkommen bei Ask Ubuntu! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Stormvirux
1
Einverstanden, aber es ist nur eine kleine Verbesserung, die ich zu einer ziemlich gut beschriebenen Korrektur der bereitgestellten URL hinzugefügt habe (siehe Kommentar unten)
Aaron Williams
0

Nachdem eine Portaudio-Anwendung einwandfrei ausgeführt wurde, klang sie beim Aufnehmen von Fehlern unregelmäßig

ALSA lib pcm.c:7963:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7963:(snd_pcm_recover) underrun occurred

LÖSUNG - Zuerst müssen Sie den vorhandenen Prozess beenden. Geben Sie diese Befehle aus

    pulseaudio --kill

    jack_control start

Wenn Sie mit den obigen Schritten fertig sind, geben Sie die folgenden Befehle ein:

    jack_control exit

    pulseaudio --start

Jetzt gleiche Anwendung dann Audio über Portaudio abgespielt ganz gut

cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"

dpkg -l|grep portaudio
ii  libportaudio2:amd64                         19+svn20140130-1build1                               amd64        Portable audio I/O - shared library
ii  libportaudiocpp0:amd64                      19+svn20140130-1build1                               amd64        Portable audio I/O C++ bindings - shared library
ii  portaudio19-dev                             19+svn20140130-1build1                               amd64        Portable audio I/O - development files
Scott Stensland
quelle