web-dev-qa-db-fra.com

Commande pour réactiver le son et maximiser le volume?

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?

5
giuspen

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.

5
Mark Rooney

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 ..

14
ThcTLo

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

4
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.

2
Jesse Ogle

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.

1
haytham-med haytham

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
0
per

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
0
user2513149