que - spyder python tutorial pdf
Cómo cambiar el volumen de manera programática en Ubuntu (6)
¿Cómo se puede cambiar el volumen programáticamente en Gnome en Ubuntu, ya sea desde la línea de comandos o una API (Python, preferiblemente)?
Las únicas respuestas que encontré a preguntas similares usan amixer
, que parece no tener ningún efecto en Ubuntu 12.04. Corriendo:
amixer set Headphone 10-
muestra:
Simple mixer control ''Headphone'',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 115
Mono:
Front Left: Playback 0 [57%] [-57.50dB] [on]
Front Right: Playback 0 [57%] [-57.50dB] [on]
El x% cambia cada vez que lo ejecuto. Desafortunadamente, no tiene efecto en el volumen real. Eventualmente dice 0%, pero el volumen todavía está en pleno funcionamiento.
El otro inconveniente es que debo especificar el dispositivo de salida activo exacto, que tal vez no sepa si hay varios dispositivos. Por ejemplo, si tengo un "Master" y "Headphone", ¿cómo puedo determinar cuál es el dispositivo activo?
Dirty snippet para leer el volumen (no olvides que el volumen va más allá de "100%" en ubuntu, en cuyo punto esto devuelve ~ 0.66).
#!/usr/bin/python
import subprocess
vol = int(filter(lambda l: l.startswith(''set-sink-volume''),
subprocess.check_output(["pacmd","dump"])
.split(''/n''))[0]
.split()[-1],16)/100000.
print vol
Lo hago usando el mezclador ALSA. Probablemente necesites descargar python-alsaaudio
sudo apt-get install python-alsaaudio
Luego para controlar el volumen,
import alsaaudio
m = alsaaudio.Mixer() # defined alsaaudio.Mixer to change volume
m.setvolume(50) # set volume
vol = m.getvolume() # get volume float value
Lee http://pyalsaaudio.sourceforge.net/libalsaaudio.html para obtener más información sobre la biblioteca alsaaudio.
Puedo recomendar esta herramienta que controla pulseaudio: https://github.com/graysky2/pulseaudio-ctl
me@mypc ~ $ pulseaudio-ctl
pulseaudio-ctl v1.63
/usr/bin/pulseaudio-ctl {up,down,mute,mute-input,set,atmost,full-status} [n]
Where up and down adjust volume in ±5 % increments
Where up and down [n] adjust volume in ±n % increments
Where mute toggles the mute status on/off
Where mute-input toggles the input status on/off
Where set set the volume to [n] %
Where atmost only takes effect if current volume is higher than [n]
Where full-status prints volume level, sink and source mute state to stdout
Optionally, redefine an upper threshold in /home/me/.config/pulseaudio-ctl/config
Volume level : 80 %
Is sink muted : no
Is source muted : no
Detected sink : 1
Detected source : 3
Pulse version : 8.0
me@mypc ~ $
También puedes probar la sencilla y elegante ponymix ponymix. Hace que sea muy fácil aumentar / disminuir el volumen, alternar (silenciar / activar el sonido) el audio, etc.
Primero, obtenga una lista de fuentes de audio disponibles con ponymix
En mi caso, puedo ver tanto un receptor 0 como una fuente 0 . Puedo usar el número 0 o el nombre completo, Estéreo digital de audio incorporado (HDMI) , para controlar el audio.
Aumenta el volumen de la tarjeta 0 en un 5% : ponymix -c 0 increase 5
Disminuya el volumen de la tarjeta 0 en un 5% : ponymix -c 0 decrease 5
Ubuntu usa pulseaudio como más allá. Se puede controlar desde la línea de comando utilizando las utilidades pactl
y pacmd
, por ejemplo:
pactl set-sink-volume 0 20%
establecería el volumen del fregadero # 0 a 20%.
ver: man pactl
y pacmd help
editar:
para evitar que -xx
se interprete como una opción de línea de comando, debe prefijar con --
. Eso detiene el análisis de la opción desde ese punto:
pactl set-sink-volume 0 -- -20% # or:
pactl -- set-sink-volume 0 -20% # doesn''t matter where the `--` goes
el comando amixer funcionó en Ubuntu 13.04,
Aumenta el volumen en un 5%
amixer -D pulse sset Master 5%+
Disminuir el volumen en un 5%
amixer -D pulse sset Master 5%-
pactl o pacmd no funcionó correctamente en Ubuntu 13.04.