usar tutorial que como python audio ubuntu gnome alsa

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.