オーディオデバイス/サウンドカードが現在再生されているかどうかテストしますか?

オーディオデバイス/サウンドカードが現在再生されているかどうかテストしますか?

私のオーディオデバイスがミュートされていることを確認する基本的なプログラムはありますか?

編集する:無音とは、何かが再生中のときを意味します(アクティブ化またはオンになっているだけでなく)。

このような:

if [[ device0 is silent ]] ; then
    radio $RANDOM
fi

編集2:私が実装したいのは、ブロードキャストを再生し、プレーヤーが失敗した場合でも再生を続けることができるスクリプトです。たとえば、インターネット接続が失われてプレーヤーが再開されない場合は、プレーヤーを殺して再起動します。

ベストアンサー1

PulseAudio(GnomeベースのLinuxディストリビューションはPulseAudioを使用する傾向があるため実行中であることを確認できますps -C pulseaudio)を使用し、特定のアプリケーションが「レシーバー」にデータを送信するかどうかを知りたい場合は、次のことができます。

pacmd list-sink-inputs | grep -c 'state: RUNNING'

それでもPulseAudioを使用すると、サウンド出力がミュートされていることを確認する方が簡単ですが、次のようにデフォルトの「レシーバー」の「ミュート」状態を取得できます。

pacmd dump | awk '
  $1 == "set-sink-mute" {m[$2] = $3}
  $1 == "set-default-sink" {s = $2}
  END {print m[s]}'

おすすめ記事