Короткое воспроизведение звука отключено, требуется прогрев или вторичный звук в фоновом режиме

Я заметил, что это происходит как на моем ArchLinux PC, так и в моем ArchLinux MacBook. Мне нужно получить уведомления о приложениях с помощью коротких звуковых тонов, и я понял, что это не проблема из-за уведомления приложений, а самой системы, и это происходит в обеих системах, которые сильно различаются.

Когда я играю в короткий аудиофайл, например paplay /usr/share/sounds/freedesktop/stereo/message.oga я не слышу его в первый раз, когда я его играю.

Если я буду воспроизводить его снова в последовательности, я слышу его, и он воспроизводится правильно, и я повторяю его последовательно.

Если я буду ждать около 10 секунд, чтобы воспроизвести его снова, он отключен (как в начале): он звучит только при прогреве.

То же самое происходит и для aplay /usr/share/sounds/alsa/Front_Left.wav , но поскольку это более длинный тон, проблема возникает только в начале файла. Сначала я слышу только «t left», отсутствует «fron». Впоследствии я слышу это полностью и ясно: «спереди слева». Если я жду 10 секунд, снова «t left».

Проблема не возникает, если я воспроизвожу музыкальный файл в фоновом режиме в медиаплеерах. Это происходит только тогда, когда компьютер не воспроизводит звук.

Как это исправить? (за исключением того, что компьютер воспроизводит неслышимый звук в демоне в фоновом режиме, чтобы он всегда нагревался)

Соответствующий тестовый сеанс, в котором проблема сохраняется только с использованием alsa:

 ~ ❯❯❯ sudo mv /usr/bin/pulseaudio /usr/bin/pulseaudio.bak ~ ❯❯❯ pulseaudio.bak --kill W: [pulseaudio.bak] main.c: Couldn't canonicalize binary path, cannot self execute. ~ ❯❯❯ paplay /usr/share/sounds/freedesktop/stereo/message.oga Connection failure: Connection refused pa_context_connect() failed: Connection refused ~ ❯❯❯ ps axu | grep -i pulse francis+ 31563 0.0 0.0 10796 2144 pts/2 S+ 14:35 0:00 grep --color=auto -i pulse ~ ❯❯❯ aplay -D plughw:0,7 /usr/share/sounds/alsa/Front_Left.wav Playing WAVE '/usr/share/sounds/alsa/Front_Left.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono ~ ❯❯❯ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 1: Generic Digital [Generic Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 ~ ❯❯❯ lspci -nn | grep -i audio 00:1f.3 Audio device [0403]: Intel Corporation Device [8086:a2f0] 

ОБНОВИТЬ

После ядра Linux 4.11.2 кодек ALC1220 находится в :

 ~ ❯❯❯ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: ALC1220 Analog [ALC1220 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 1: ALC1220 Digital [ALC1220 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3] Subdevices: 1/1 Subdevice #0: subdevice #0 

Я подключил свои наушники и сумел воспроизвести проблему, просто используя aplay но по-другому:

 ~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Left.wav ~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/purple/alert.wav ~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Left.wav ~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/purple/alert.wav ... 

Мне приходилось воспроизводить разные аудиофайлы, находящиеся в разных каталогах, оба воспроизведения разрезаются в начале, если один воспроизводится, а затем другой, интервал между воспроизведением не имеет значения. Если файл воспроизводится один раз, воспроизведение файлов в том же каталоге впоследствии не приведет к воспроизведению проблемы и не дожидается ее «охлаждения» (я жду 1 минуту). То же самое происходит с paplay при включении pulseaudio. При воспроизведении через HDMI он воспроизводится в обоих тестовых случаях.

    В предположении, что принимающая звуковая система должна «просыпаться» перед выходом звука, и это происходит только после получения начальной партии звуковых данных, отбрасывая первую партию, если это не может быть исправлено в принимающей звуковой системе , обходной путь заключается в том, чтобы непрерывно выводить тишину, например, с помощью play от sox :

     play -n 

    редактировать

    С дополнительной информацией о том, что он работает в Windows, и информацией, которую ни звуковая карта («Устройство Intel Corporation»), ни кодек («Общий») не распознаются по имени, также возможно, что это проблема с драйвером. В кодеке есть бит «keep alive enable» (KAE), возможно, это нужно установить, возможно, с помощью микшера, но я этого недостаточно знаю.

    lspci -nn ошибку с разработчиками ALSA, предоставите информацию lspci -nn и вывод cat /proc/asound/card*/codec\#* . (Вы также можете поместить вывод последнего в pastebin и отредактировать свой вопрос со ссылкой, чтобы я мог посмотреть).