1570 votes

Comment faire en sorte qu'une machine soit "écran blanc" pendant un certain temps (à titre de pénalité) si certains niveaux de bruit sont atteints ?

Mes enfants (4 et 5 ans) crient beaucoup lorsqu'ils jouent à des jeux sur l'ordinateur. J'ai trouvé un remède efficace à ce problème. Lorsque j'entends des bruits forts, je me connecte à l'ordinateur de jeu et je fais :

chvt 3;  sleep 15;  chvt 7 

Cela éteindra l'écran pendant 15 secondes sous Linux. Je leur ai dit que l'ordinateur n'aime pas les bruits forts. Ils y croient totalement et supplient l'ordinateur de les pardonner. Ils sont devenus beaucoup plus silencieux, mais pas au point de me satisfaire, et je dois donc poursuivre ce processus éducatif. Cependant, je ne suis pas toujours là pour le faire manuellement.

Est-il possible d'automatiser cette opération ? Un microphone est fixé à la boîte. Si le niveau sonore dépasse un certain seuil, je veux lancer une commande.

6 votes

Jusqu'à ce qu'ils apprennent à appuyer sur CTRL + ALT + F7.

2 votes

@SuiciDoga Hey ; ils ne savent pas ce qui se passe !

3 votes

Félicitations pour la solution technique. Mais je pense qu'il est important de toujours dire la vérité aux enfants.

44voto

TommyA Points 3352

Mes deux centimes pour la solution C ou C++ : ce n'est peut-être pas l'approche la plus efficace, mais sous Linux, vous pouvez utiliser la fonction API ALSA (bibliothèque de traitement audio intégrée à Linux) et utiliser une technique numérique (par exemple, calculer le niveau sonore moyen par seconde) pour obtenir le niveau de bruit.

Ensuite, vous pouvez le vérifier dans une boucle infinie, et s'il est supérieur à un seuil prédéfini, vous pouvez utiliser la fonction Bibliothèque X11 pour éteindre l'écran pendant quelques secondes, ou alternativement (moins élégant, mais ça marche) invoquer la fonction chvt en utilisant la commande system("chvt 3; sleep 15; chvt 7 "); .

2 votes

Si j'utilise la commande, j'envisagerais quelque chose de différent alors chvt . ArchWiki a de beaux exemples.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X