Existe-t-il un programme par défaut où je peux vérifier si mes périphériques audio sont silencieux?
Edit: Par silence, je veux dire que s'il y a quelque chose à jouer là-dessus (pas seulement activé ou ouvert)
Quelque chose comme ça:
if [[ device0 is silent ]] ; then
radio $RANDOM
fi
Edit 2: Ce que j'essaie de réaliser est un script qui joue la radio et peut continuer à jouer lorsque le joueur échoue, par exemple si la connexion Internet tombe en panne et que le joueur ne récupère pas, je vais tuer le joueur et recommencer
sox
. Dans les autres cas, vous pouvez essayerlsof|grep snd
. S'il n'y a rien, vous pouvez allumer la radio.Réponses:
Si vous utilisez PulseAudio (les distributions Linux basées sur Gnome ont tendance à utiliser PulseAudio, vous pouvez vérifier si l'une est en cours d'exécution avec
ps -C pulseaudio
) et vous voulez savoir si certaines applications envoient des données à un "récepteur", vous pouvez faire:Toujours avec PulseAudio, si vous voulez vérifier si votre sortie audio est en sourdine, il pourrait être plus simple mais vous pouvez obtenir le statut "muet" du "récepteur" par défaut en utilisant:
la source
no
dans n'importe quelle situation, qu'il joue ou non)mplayer
), il donneState: CORKED
au lieu deState: RUNNING
dans ce cas donc ça marcherait toujours. Si l'application alimente des données de silence (joue du silence), je suppose que cela s'afficherait toujoursRUNNING
, mais dans ce cas, je ne vois pas d'autre alternative que d'utiliser pamon sur le périphérique de moniteur de tous les puits et vérifier le silence.Si je vous comprends bien, voici un exemple:
Silence:
J'allume audacieux:
Pour OSS chande
/dev/snd/timer
to/dev/dsp
.Il s'agit d'une méthode très dépendante.
la source
En supposant que vous utilisez le mélangeur ALSA pour votre son, vous pouvez utiliser
amixer
pour interroger des informations sur les périphériques audio. Un périphérique audio possède généralement plusieurs canaux audio - ou commandes - chacun pouvant être mis en sourdine ou non. Par exemple, pour vérifier si leMaster
contrôle est mis en sourdine, vous feriez quelque chose comme:Utilisez l'
set
option pour effectuer des opérations sur les commandes. Voirman amixer
pour plus d'aide.la source
amixer
n'a pas fonctionné, j'ai testé pendant 15 minutes sans aucun lecteur ouvert, et il rapporte toujours "non muet"La réponse de htor fonctionnera probablement, mais il est tout à fait possible que "off" apparaisse ailleurs dans la sortie, provoquant un résultat incorrect. Voici une vérification plus stricte en utilisant GNU awk:
la source
amixer
La dernière ligne de My n'a pas$6
: «Mono: Lecture [on]». (amixer
version 1.0.26) Ce$NF
serait peut -être plus portable.