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 구성 파일에서 임시로 설정할 수 있습니다.