사운드 카드의 전원이 켜졌을 때 감지(alsa 사용)

사운드 카드의 전원이 켜졌을 때 감지(alsa 사용)

사운드 카드에 전원이 공급되는지 스크립트에서 어떻게 감지합니까?

Odroid U3동기: 나는 음악 플레이어로 사용하는 Linux 미니 컴퓨터( )를 가지고 있습니다 . 사운드가 재생될 때만 연결된 앰프의 전원을 켜고 싶습니다. 이렇게 하려면 오디오가 켜져 있고 꺼져 있는지 어떻게든 감지해야 합니다.

이 게시물의 일부 파일에서 상태를 ALSA읽을 수 있음을 보여줍니다 /proc. 이 파일은 실제로 파일이 아니므로 inotify작동하지 않으며 폴링은 전력을 낭비하고 오디오 전원을 즉시 감지해야 하기 때문에 옵션이 아닙니다.

오디오 하드웨어가 켜지거나 꺼지는 변경 사항을 알려주는 스크립트에서 기다릴 수 있는 시스템 이벤트나 alsa 이벤트가 있습니까? 그런 다음 이벤트가 발생할 때까지 기다리고 앰프에 전원을 공급한 다음 반복적으로 기다리는 끝없는 루프를 스크립트로 작성했습니다.

답변1

커널에 감사 지원이 활성화되어 있는 경우(임베디드 배포에서는 불가능함) 누군가 사운드 장치 파일에 액세스할 때 알림을 받을 수 있습니다.

그렇지 않으면 사용자 공간에서 수행되어야 합니다. ALSA 라이브러리는 가상을 지원합니다.후크 기능을 호출할 수 있는 장치공유 도서관에서. 이는 상당히 문서화되지 않았습니다. 유일한 예는 _snd_pcm_hook_ctl_elems_install()PCM 장치를 사용할 때 특정 믹서 컨트롤을 변경하고 복원하는 기능입니다.

관련 정보