Wyjście dźwięku zaczyna się opóźnione

10

Za pośrednictwem SPDIF słyszalny dźwięk zaczyna się późno, np. W oknie dialogowym Testuj dźwięk maksymalnie słyszę „lewy”, kiedy głos powinien powiedzieć „przedni lewy”.

Kiedy mam pavucontrolotwarte (w tle) kliknięcie Test Sound, uruchamia się ono natychmiast.

Zasadniczo, rozpoczynając dowolny plik audio / multimedialny, początek nie jest odtwarzany / słyszalny. Podłączanie optyczne lub koncentryczne. Wydaje się, że dotyczy to tylko Ubuntu 12.10, nie było tak w 12.04, nie wydaje się tak w przypadku 13.04!

Od ubuntuusers.de trochę pomocy - granie niesłyszalną zatoką, aby utrzymać spdif przy życiu:

apt-get install sox
play -n -c2 synth sin gain -100   # -c2 for two channels

Sprzęt w ASRock 970 Extreme3 ​​(i GeForce 210):

$ cat /proc/asound/cards
 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfe200000 irq 16
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe080000 irq 25

$ cat /proc/asound/card0/codec* | grep Codec
Codec: Realtek ALC892

Niektóre pulseaudio -vdane wyjściowe zostały wklejone na http://paste.ubuntu.com/5629082/

Czy mogę w jakiś sposób zaktualizować pulseaudio 2.1?

Wyjście Live Ubuntu 13.04 wklejone do http://paste.ubuntu.com/5630475/ - w rzeczywistości tutaj dopiero pierwsze wywołanie dźwięku (lub po dłuższej przerwie użytkownika?) Zaczyna się opóźniać, tj. Po „... Left” Słychać „Front Right”, podczas gdy w 12.10 zawsze jest to „… Left”, „… Right”.

rodzaj
źródło
1
Czy możesz podać więcej informacji na temat karty dźwiękowej i jej podłączeniu? Czy możesz spróbować z jackdem, jeśli tak też jest? ponieważ może być związany z Pulse Audio, a nie z kartą dźwiękową.
ttoine
Wydaje się, że Realtek ALC892 oferuje wiele trafień w google do kopania przez: /
wpisz
instalacja sterownika od producenta jak w community.linuxmint.com/tutorial/view/1236 też nie pomogła. jeden wiersz brzmi: {.id = 0x10ec0892, .name = "ALC892", .patch = patch_alc662},
wpisz

Odpowiedzi:

27

Wiem, że mam zamiar ożywić stary wątek, ale znalazłem łatwe do rozwiązania rozwiązanie problemu.

Od: https://wiki.archlinux.org/index.php/PulseAudio

Aby wyłączyć ładowanie modułu zawieszenie modułu w trybie bezczynności, skomentuj następujący wiersz w używanym pliku konfiguracyjnym (~ / .config / puls / default.pa lub /etc/pulse/default.pa):

### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle

Na koniec uruchom ponownie PulseAudio, aby zastosować zmiany.

Dr_Evil
źródło
To też była odpowiedź dla mnie, ale ma ona wadę. Mam niektóre programy audio używające ALSA do bezpośredniego przekazywania określonego formatu do odbiornika kina domowego w celu dekodowania, zamiast używania niekiedy podejrzanego ponownego próbkowania PA. Działa to łatwo dzięki tej samej funkcji zawieszenia.
Moilleadóir
3

Wygląda na to, że zarządzanie energią uniemożliwia karcie dźwiękowej wysyłanie pierwszego fragmentu dźwięku. Z http://wiki.gentoo.org/wiki/Power_management/Soundcard ważne bity są następujące:

Strojenie środowiska wykonawczego

Możesz dostroić sterownik w systemie plików sysfs w / sys / module / snd_hda_intel / parameters

Pokrętło power_save_controller kontroluje, jeśli włączony jest tryb oszczędzania energii. Jest wstępnie ustawiony przez opcję jądra ... oszczędzanie energii ...

Pokrętło power_save ustawia limit czasu w sekundach. Jest ustawiony wstępnie przez opcję jądra Domyślny limit czasu ...

pm-utils

pm-utils zawiera skrypt, który włącza tryb oszczędzania energii na baterii i wyłącza na AC. Zastępuje domyślne wartości jądra.

Jeśli używasz pm-utils, ale nie chcesz tego rodzaju regulacji, wyłącz skrypt: root # touch /etc/pm/power.d/intel-audio-powersave

Z powyższego tekstu można wypróbować:

  1. w terminalu uruchom następujące polecenie i spróbuj ponownie odtworzyć dźwięk:

    echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller
    

    Jeśli dźwięk jest w porządku, musisz go ustawić na stałe, dodając nowy plik w /etc/modprobe.d/ o następującej treści:

    options snd_hda_intel power-saving=N
    
  2. uruchom sudo touch /etc/pm/power.d/intel-audio-powersavei uruchom ponownie

    jeśli poprawka zadziałała, dźwięk powinien być odtwarzany normalnie, jeśli nie, usuń plik ponownie:

    sudo rm /etc/pm/power.d/intel-audio-powersave
    

Jeśli żadna z tych rzeczy nie działa, nie mam pomysłów :-).

Daniel Llewellyn
źródło
Świetna odpowiedź, wielkie dzięki! Niestety nie ma jeszcze zmian.
wpisz
jaki „nowy plik” powinienem zrobić w etc / modprobe.d /?
Bhikkhu Subhuti
2
  1. Znajdź pliki konfiguracyjne PulseAudio zawierające load-module module-suspend-on-idlelinie:

    neatsoft@desktop:~$ grep module-suspend-on-idle /etc/pulse/*
    /etc/pulse/default.pa:load-module module-suspend-on-idle
    /etc/pulse/system.pa:load-module module-suspend-on-idle
    
  2. Skomentuj te linie.

  3. Uruchom ponownie PulseAudio, aby zastosować zmiany:

    pulseaudio -k

Właśnie przetestowałem na Ubuntu 17.04 i działa dobrze.

neatsoft
źródło
To działało dla mnie w 19.04, z wyjątkiem części dotyczącej ponownego uruchomienia. Musiałem zrestartować, aby ponownie uruchomić pulseaudio, ponieważ pulseaudio -kdało mi kilka błędów.
muclux,
1

Jest to ogólny problem z wyjściem SPDIF / cyfrowym i odbiornikiem przetwarzającym sygnał itp. Jeśli nie ma sygnału, odbiornik przechodzi w tryb bezczynności. Rozpoczęcie odtwarzania sygnału zajmuje od kilku do kilkuset milisekund. JEDYNYM sposobem, aby to naprawić, jest spowodowanie, że wyjście SPDIF stale wysyła NIEKTÓRY sygnał, utrzymując w ten sposób przetwarzanie odbiornika przez cały czas. W tej chwili właśnie rozwiązałem ten problem w systemie Windows za pomocą małego narzędzia, które jakiś facet napisał w .NET, który przez cały czas wysyła sygnał zerowy. Nazywa to SPDIF Keep-Alive. Dzięki temu sygnał płynie, a mój odbiornik stale nasłuchuje. Nie widziałem jeszcze sposobu na zrobienie tego dla Linuksa, ale wyobrażam sobie, że wsparciem dla stworzenia takiej rzeczy jest WSZĘDZIE. Mamy nadzieję, że dało to komuś pomysł na to, czego szukać lub gdzie szukać dalej! -K9SPY

Cyfrowe audio utrzymuj przy życiu utrzymuj przy życiu SPDIF utrzymuj przy życiu utrzymuj przy życiu TOSLINK utrzymuj przy życiu utrzymuj przy życiu czas wyłącza się wyłącza zasilanie opóźnienie dźwięku SPDIF

K9SPY
źródło
0

Akceptowane odpowiedź o nie ładowaniemodule-suspend-on-idle nie rozwiąże problemu dla mnie. Aby to naprawić, musiałem pozostawić w tle ciągłe polecenie ciszy, patrz AKTUALIZACJA 2 następującego pytania:

I odtworzyłem ten problem zarówno w wewnętrznych głośnikach laptopa, jak i komputerach PC przez HDMI i słuchawki, bez potrzeby SPDIF, w najnowszych ArchLinux i Ubuntu.

pepper_chico
źródło