Dźwięk wina jest odtwarzany zbyt szybko i strasznie trzeszczy

14

Dźwięki w moich aplikacjach są odtwarzane z dużą prędkością i strasznie trzaskają. W Spotify utwory są odtwarzane z prędkością około 3x. Spoglądałem na to dość sporo i wszystko, co mogę wymyślić, to raport o błędach ze stycznia 2012 roku, który jest oznaczony jako zamknięty.

Testowałem Spotify i Hearthstone przy użyciu PlayOnLinux z wersjami Wine 1.5.0, 1.6, 1.6.0, 1.7.0, 1.7.8, a także z systemem Wine, który jest wersją 1.4.1. Wszystkie mają dokładnie ten sam straszliwy problem z trzaskającym dźwiękiem. To prowadzi mnie do założenia, że ​​nie jest to błąd w Wine.

Kroki do odtworzenia z raportu o błędzie:

Kroki ku reprodukcji:
1. winecfg
2. przejdź do zakładki Audio
3. Przetestuj dźwięk

Aktualne wyniki:
wytwarzane trzaski

Oczekiwane rezultaty:
normalna wydajność

Wydają też dla mnie trzaski. Robiąc to, winecfg wydrukował następujące informacje na terminalu:

p11-kit: nie można załadować modułu: /usr/lib/i386-linux-gnu/pkcs11/p11-kit-trust.so: / usr / lib / i386-linux-gnu / pkcs11 / p11-kit-trust. więc: nie można otworzyć pliku obiektu udostępnionego: brak takiego pliku lub katalogu
err: ole: CoInitializeEx Próba zmiany modelu gwintowania tego mieszkania z wielowątkowego na wielowątkowy
ALSA lib pcm.c: 7843: (snd_pcm_recover) wystąpiło niedopełnienie
ALSA lib pcm.c: 7843: (snd_pcm_recover) wystąpiło niedopełnienie
ALSA lib pcm.c: 7843: (snd_pcm_recover) wystąpiło niedopełnienie
ALSA lib pcm.c: 7843: (snd_pcm_recover) wystąpiło niedopełnienie

(Pierwsza linia pojawiła się, gdy otworzyłem winecfg, ostatnie 5 pojawiło się, kiedy kliknąłem Test Sound)

Jakieś wskazówki, co może być nie tak? Daj mi znać, czy mogę podać więcej informacji.


pulseaudio 1: 4.0-0ubuntu6 amd64
Hubro
źródło
Może związane lub duplikat: askubuntu.com/questions/124602/...
donquixote

Odpowiedzi:

24

Ponieważ jest to pierwszy wynik zwrócony przez Google, pomyślałem, że podzielę się tutaj swoim doświadczeniem. Dla tych, którzy szukają szybkiej poprawki, umieść następujące informacje w swoim profilu ~ / .bashrc lub / etc / w celu wprowadzenia zmian w całym systemie:

alias wine='PULSE_LATENCY_MSEC=60 wine'

Jest to ta sama poprawka, która jest używana w Skype i PulseAudio 4.0 i nowszych wersjach, która działa tak samo jak wino. Mam nadzieję że to pomoże!

Edytuj (12.01.2016) :

Możesz włączyć tę zmienną globalnie, dodając ten wiersz do ~ / .bashrc i wylogowując się / ponownie uruchamiając

export PULSE_LATENCY_MSEC=60

Jeśli po tym występują problemy z dźwiękiem w innych aplikacjach, po prostu usuń linię i wyloguj się lub uruchom ponownie. Jeśli chcesz go tymczasowo przetestować, otwórz nowy terminal i wklej ten wiersz. Teraz każda aplikacja, którą wywołasz z tego terminala, będzie miała ustawioną zmienną, a PulseAudio ustawi opóźnienie.

Więcej informacji o tym problemie i „poprawce”: http://arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/

Iskren
źródło
Czy to działa również przy uruchamianiu wina z PlayOnLinux i podobnych aplikacji?
Testowałbym
1
Nie mam pojęcia, nigdy nie uruchomiłem PlayOnLinux. Możesz to przetestować, wpisując powyższe polecenie w terminalu i uruchomić coś z PlayOnLinux. Jeśli twój dźwięk jest w porządku, to działa. Jeśli tak nie jest, możesz spróbować ustawić zmienną bezpośrednio, uruchamiając „export PULSE_LATENCY_MSEC = 60” w terminalu, a następnie uruchamiając PlayOnLinux z tego samego terminala. „Dziedziczy” zmienną i powinna działać.
Iskren
Uratowałem mój bekon. Miałem ten problem od lat, to jedyna rzecz, która zadziałała. Jestem ciekawa, czy pamiętasz, skąd masz to rozwiązanie? Czy wiemy, dlaczego to działa?
dr Hannibal Lecter
Miałem problemy z PA4 i Skype jakiś czas temu i szukałem rozwiązania. Nieco później wino zaczęło robić to samo, więc po prostu spróbowałem naprawić skype i zadziałało. Ten post wyjaśnia całkiem dobrze, co jest problemem i jak to zmienne przytwierdza to: arunraghavan.net/2013/08/pulseaudio-4-0-and-skype
iskren
Obawiam się, że to rozwiązanie nie działa w POL. Choć na początku się wydawało.
Tamsyn Michael,
7

Uruchom terminal (Ctrl + Alt + T)

Wydaj polecenie pulseaudio -k

Spróbuj odtworzyć problem. Nie powinien już grać w przewijanie do przodu.

Jeśli chodzi o trzaskanie, dziennik mówi ci prosto i prosto, masz niedopełnienie bufora. Zmień jakość próbkowania ... Poświęć trochę jakości dla szybkości i sprawdź, czy to rozwiąże problem.

DeeJayh
źródło
Wstałem dziś rano i nie byłem w stanie odtworzyć problemu. Dźwięki grają teraz idealnie. Jedyne, co zrobiłem od wczoraj, to przełączenie dźwięku z zestawu słuchawkowego na HDMI. Dzisiaj wróciłem i trzask zniknął. Prawdopodobnie to się wkrótce powtórzy, wtedy spróbuję zabić pulseaudio.
Hubro,
Problem powrócił. Próbowałem pulseaudio -ki cały dźwięk zniknął. Suwak dźwięku w systemie Ubuntu jest wyszarzony i w opcjach dźwięku nie ma urządzeń dźwiękowych. Musiałem ponownie uruchomić komputer, aby odzyskać dźwięk.
Hubro,
Pulsacyjny dźwięk powinien sam się zrestartować, następnym razem, gdy będziesz mieć problem, spróbuj sudo alsa force-reload
DeeJayh
Również wydanie polecenia pulseaudiopowinno uruchomić go ponownie, gdy nie będzie ono działać samodzielnie.
DeeJayh,
To nie jest wąskie gardło procesora. Mam ten sam problem na 4790k z World of Warcraft, nigdy nie przekraczam 30% CPU i mam ustawienie niceWoW i Pulseaudio na -20. Coś w oprogramowaniu uniemożliwia pulseaudio wypełnianie buforów.
Jonathan Baldwin
3

W przypadku niektórych gier, jeśli korzystasz z PlayOnLinux, możesz otworzyć program uruchamiający za pomocą edytora tekstu i zmienić Exec=wiersz w następujący sposób:

Exec=env PULSE_LATENCY_MSEC=60 /usr/share/playonlinux/playonlinux --run "GameName" %F
Skitz
źródło
1

Wypróbuj to rozwiązanie . Miało to głównie związek z PulseAudio, osobiście go usunąłem i spróbowałem ponownie, a underrun zniknął, ale straciłem możliwość przenoszenia wyjścia audio do różnych odbiorników. Ta instrukcja obsługi utrzymuje, że pulseaudio i ALSA dobrze się ze sobą bawią, nie pozwalając pulseaudio bezpośrednio zablokować sprzętu.

allenskd
źródło
3
Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Stormvirux
To nie jest rozwiązanie dla każdego, kto musi nagrywać dźwięk pochodzący z aplikacji Wine, ani nie daje najmniejszej uwagi na opóźnienie (Pulse odtwarza szybko i wystarczająco luźno z opóźnieniem, ale wrzuca tam również dmix ...)
Jonathan Baldwin
0

Dodano zaktualizowane rozwiązanie jak wyżej do

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

Aaron Williams
źródło
2
Witamy w Ask Ubuntu! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Stormvirux
1
Zgadzam się, ale to tylko mała poprawka, którą dodałem (patrz komentarz na dole) do dość dobrze opisanej poprawki pod podanym adresem
Aaron Williams
0

Po prawidłowym uruchomieniu aplikacja portaudio zaczęła wydawać się nieregularna podczas rejestrowania błędów

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

ROZWIĄZANIE - najpierw musisz zabić istniejący proces ... wydaj te cmd

    pulseaudio --kill

    jack_control start

Po zakończeniu powyższych czynności wydaj następujące polecenia:

    jack_control exit

    pulseaudio --start

Teraz ta sama aplikacja odtwarzała dźwięk przez portaudio

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
źródło