サウンドカードに電力が供給されているかどうかをスクリプトでどのように検出しますか?
Odroid U3
同期:私は音楽プレーヤーとして使用するLinuxミニコンピュータ()を持っています。サウンドが再生されたときにのみ接続されたアンプの電源を入れたいです。これを行うには、オーディオがオンになっているかオフになっているかどうかを検出する必要があります。
この投稿の一部のファイルからステータスをALSA
読み取ることができることを示します/proc
。このファイルは実際にはファイルではないためinotify
動作しません。ポーリングは電力を無駄にし、オーディオ電源をすぐに検出する必要があるため、オプションではありません。
オーディオハードウェアがオンまたはオフになる変更を通知するスクリプトで待機できるシステムイベントまたはalsaイベントはありますか?その後、イベントが発生するのを待ってアンプに電力を供給し、繰り返し待機する無限ループをスクリプトに書きました。
答え1
カーネルで監査サポートが有効になっている場合(組み込み展開では不可能)、誰かがサウンドデバイスファイルにアクセスしたときに通知を受け取ることができます。
それ以外の場合は、ユーザースペースで実行する必要があります。 ALSAライブラリは仮想をサポートします。フック機能を呼び出せるデバイス共有図書館で。これはかなり文書化されていません。唯一の例は、_snd_pcm_hook_ctl_elems_install()
PCMデバイスを使用するときに特定のミキサーコントロールを変更および復元する機能です。