alsa/pulseaudio는 정확히 5초 동안 유휴 상태일 때 항상 팝 사운드를 냅니다. [폐쇄]

alsa/pulseaudio는 정확히 5초 동안 유휴 상태일 때 항상 팝 사운드를 냅니다. [폐쇄]

aplay사용자가 인터페이스와 상호작용할 때마다 짧은 사운드 효과를 재생합니다.

어떤 소리든 순서에 관계없이 재생할 수 있으며 두 소리가 5초 이내에 재생되는 한 전환은 명확하지만 5초 이상의 간격이 있으면 끔찍한 팝핑 소리가 들립니다!

내 모든 사운드 파일의 길이는 1초 미만입니다.

이 문제를 해결하기 위해 제가 한 일은 .sh 스크립트에서 반복되는 5초 길이의 로우 샘플 Silent.wav 파일을 만드는 것뿐입니다(이것은 확실히 장기적인 솔루션이 아닙니다).

조용한 무차별 대입 크래킹:

#!/bin/bash
while [ 1 ] ; do
 aplay sounds/blank.wav
done

이제는 팝이 거의 없습니다.

그렇다면 제가 이해하지 못하는 것은 폭발을 일으키는 5초 동안 무언가가 변하는 이유는 무엇입니까? 오랜 지연 후 사운드를 재생할 때 오디오가 깨지지 않도록 어떻게 구성합니까?

/etc/pulse/default.pa 및 /etc/pulse/daemon.config를 시도했지만 아무런 진전이 없었습니다.

저는 단일 코어 Raspberry Pi를 사용하고 있지만 무차별 대입이 도움이 된다면 희망이 있을까요?

[고쳐 쓰다]

나는 장치를 지속적으로 강제 음소거하는 좀 더 우아한 방법을 발견했습니다.

aplay /dev/zero
    
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono

그러나 어떤 이유에서인지 고주파수 톤이 생성됩니다. 이와 비슷한 방법이 가능할까요?

[고쳐 쓰다]

aplay -r 8000 -f S16_LE /dev/zero

이는 작동하지만 스레드를 계속 열어두기 위해 스레드를 지속적으로 실행하므로 약간의 오버헤드가 필요합니다. 하지만 이제 오디오는 매우 깨끗해졌습니다.

[편집하다]

이 기능은 pulseaudio 모듈 모듈-일시 중지-유휴와 관련이 있습니다. 이 모듈은 비활성화될 수도 있습니다. 먼저 임시로 시도해 보세요.

pactl unload-module module-suspend-on-idle

만족스러우면 pulseaudio 구성 파일에서 임시로 설정할 수 있습니다.

관련 정보