Je peux contrôler le volume à l'aide de cette commande via le terminal amixer -D Pulse sset Master 0%
. Ma question est la suivante: comment puis-je faire la même chose en utilisant python script?.
Vous pouvez utiliser call
à partir du module subprocess
:
from subprocess import call
call(["amixer", "-D", "Pulse", "sset", "Master", "0%"])
Bien sûr, vous pouvez utiliser le code normal python avec:
valid = False
while not valid:
volume = input('What volume? > ')
try:
volume = int(volume)
if (volume <= 100) and (volume >= 0):
call(["amixer", "-D", "Pulse", "sset", "Master", str(volume)+"%"])
valid = True
except ValueError:
pass
Ce code sera mis en boucle jusqu'à ce que l'utilisateur fournisse une entrée valide - comprise entre 0 et 100, puis définira le volume sur cette valeur.
Cela fonctionnera dans Python 3. Modifiez le input
en raw_input
pour Python 2.
Pour augmenter de 10% lorsque le script est exécuté, vous pouvez effectuer l'une des deux opérations suivantes.
Vous pouvez utiliser le module alsaaudio
.
Tout d'abord, installer avec
Sudo apt-get install python-alsaaudio
puis importez-le:
import alsaaudio
on peut avoir le volume:
>>> m = alsaaudio.Mixer()
>>> vol = m.getvolume()
>>> vol
[50L]
on peut aussi régler le volume:
>>> m.setvolume(20)
>>> vol = m.getvolume()
>>> vol
[20L]
Ce nombre est un entier long dans une liste. Donc, pour en faire un nombre utilisable, nous pouvons faire int(vol[0])
.
Donc, pour augmenter de 10% quand il est exécuté?
import alsaaudio
m = alsaaudio.Mixer()
vol = m.getvolume()
vol = int(vol[0])
newVol = vol + 10
m.setvolume(newVol)
Ou nous pouvons nous en tenir au module subprocess
et aux commandes Ubuntu par défaut:
from subprocess import call
call(["amixer", "-D", "Pulse", "sset", "Master", "10%+"])
augmentera de 10%.
Pour moi, le code de Tim n'a pas très bien fonctionné. Je devais faire ceci:
import alsaaudio
m = alsaaudio.Mixer(alsaaudio.mixers[0]) # alsaaudio.mixers = ["PCM"] for me.
m.setvolume(90) # Or whatever
Cela est peut-être dû à mon fichier de configuration .asoundrc
étrange/cassé. Mais étant donné qu’il n’existe pas de documentation de référence sur .asoundrc
- quelques exemples aléatoires - je ne pense pas que vous puissiez me blâmer.
Veuillez également ne pas appeler les programmes en ligne de commande pour le faire. C'est moche et sujet aux erreurs.