J'ai besoin d'activer/désactiver le son à partir de la ligne de commande. J'ai découvert que je pouvais le faire avec:
amixer sset Master mute
amixer sset Master unmute
le problème est que la commande pour unmute ne fonctionne pas (comme décrit également dans ce rapport de bogue: https://bugs.launchpad.net/ubuntu/+source/alsa-utils/+bug/878986 )
Ma question est la suivante: existe-t-il un autre moyen d’obtenir le même résultat, alors qu’amixer ne fonctionne pas?
De plus, si je règle manuellement le volume au minimum puis appelle
amixer sset Master 100%
le volume augmente mais ne passe pas au maximum, même si le stdout indique:
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 31 [100%] [0.00dB] [on]
Front Right: Playback 31 [100%] [0.00dB] [on]
Quelqu'un peut-il m'aider avec ça?
Essayez les commandes suivantes dans un terminal
amixer -c 0 set Master playback 0% mute
amixer -c 0 set Master playback 100% unmute
Cela devrait garantir que toutes les sorties sont contrôlées. Il est probable qu'avec les commandes que vous avez postées, le volume n'est pas égal à 100%, c'est que l'amplificateur ne libère pas toutes les sorties, par exemple les écouteurs ou toute autre sortie audio en même temps.
Encore mieux est celui-ci, désactivez le son de tous les périphériques audio. et régler le volume à 70%
for x in `amixer controls | grep layback` ; do amixer cset "${x}" on ; done
for x in `amixer controls | grep layback` ; do amixer cset "${x}" 70% ; done
dans l'exemple ci-dessus, le HDMI et l'optique ne sont pas démontés ..
Obtenir toutes les sources sonores, obtenir leurs noms, former une ligne de commande avec amixer et l'exécuter
amixer scontrols | grep -oE "'.*'" | awk -F\' \
'{print "amixer -c 0 set \""$2"\" unmute 100"}' | sh
Réactiver tous les périphériques audio et régler leur volume sur max.
Avoir un grand, Mike
La solution de Mark Rooney ne fonctionnait pas pour moi, mais j'ai pu contourner ce problème en désactivant explicitement tous les canaux.
#!/bin/bash
for i in Master Headphone PCM Front Surround Center LFE Side; do
amixer -c 0 set "$i" playback unmute
done &>/dev/null
J'ai eu les noms de canaux mais en exécutant alsamixer
.
Ok, vous devez d’abord connaître vos différents numéros de carte à partir de
alsamixer
sélectionnez les cartes de F6 et notez le numéro de carte qui a l'option Maître
Si vous utilisez un casque, nous changeons à la fois Master et Headphone
amixer -c 1 set Master toggle && amixer -c 1 set Headphone toggle
où -c spécifie le numéro de la carte, 1 dans cette commande.
Les commandes que vous utilisez ne fonctionnent pas pour moi non plus, mais essayez-les. Ils travaillent pour moi.
amixer set Master 0
amixer set Master 100
La réponse acceptée par Mark Rooney ne m'a pas aidé car cette commande m'a donné une erreur (ma carte son porte le numéro 1):
amixer: Mixer attach hw:1 error: Invalid argument
Alors j'ai essayé
amixer set Master 100 unmute
et cela a fonctionné parfaitement pour la carte son actuellement sélectionnée. Vous pouvez également le désactiver en utilisant
amixer set Master 0 mute