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

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/


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.


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

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.


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.