miércoles, 24 de septiembre de 2008

Cambiar el volumen usando codigo Bash

Si usas ALSA para el sonido de tu sistema, las funciones contenidas en el siguiente script (código) presentado aquí puede ser usado para obtener y manejar
el volumen en tu sistema. Lo puedes usar si tienes un script monitoreo ejecutándose y lo quisieras incrementar el volumen cuando recibes una alarma
y luego bajarlo al anterior volumen.

Esta función usa amixer para la salida de información por el control mezclador maestro y usa grep y cut para obtener el valor correcto de la salida.
También usa amixer para configurar el volumen. Usa la opción "cset" de amixer.

El script es el siguiente:


#!/bin/bash
#

#####################################################################
# Obtener el volumen actual.
function obtener_volumen()
{
mixer=$(amixer get Master | grep 'Front Left:')

echo $mixer | cut -d ' ' -f 4
}


#####################################################################
# Configurar volumen.

function config_volume()
{
amixer cset iface=MIXER,name="Master Playback Volume" $1 >/dev/null

}

if [[ $(basename $0 .sh) == 'sound' ]]; then

sound_file=~/Documents/sounds/notify.wav
if [[ "$1" ]]; then sound_file="$1"; fi

ovol=$(obtener_volumen)
echo "Volumen actual: $ovol"
aplay $sound_file

sleep 2

vol=40
echo "Tocando a: $vol"
config_volumen $vol
aplay $sound_file

sleep 2

echo "Otra vez a: $ovol"
config_volumen $ovol
aplay $sound_file
fi



# vim: tabstop=4: shiftwidth=4: noexpandtab:
# kate: tab-width 4; indent-width 4; replace-tabs false;



Si guardas el script como sound.sh y lo ejecutas directamente pasando el nombre del archivo de sonido, este lo tocara al volumen actual, luego incrementara el volumen y lo tocara de nuevo y finalmente restaura el volumen y lo ejecuta de nuevo por ultima vez. Si abres el control de volumen antes de ejecutar el script deberías ver el control del volumen maestro (master) moverse cuando el script cambia el volumen. Puedes ajustar el valor de la linea vol=40 para obtener el volumen que deseas.

Fuente.

1 comentario:

X3M dijo...

Existe este script para los que utilizamos pulseaudio???