Numero visite
Questa pagine è stata vista da 22567 persone

Home

Aug 11, 2010

Switchare output audio attraverso script bash


Se avete più output audio (per esempio casse e cuffie wireless) e vi serve passare in modo molto veloce da uno all'altro ecco cosa fa per voi.....

Categoria: Linux - Software Libero
Postato da: lucadelu

 

Dopo l'acquisto delle cuffie wireless ero alla ricerca di un metodo veloce per passare da queste alle casse e viceversa; dopo un po' di ricerca ho trovato questa guida, che si rifà a questa in inglese, dove viene presentato un'ottimo script per risolvere il mio problema.

Innanzitutto dobbiamo installare pulseaudio, pulseaudio-utils e libnotify-bin
sudo apt-get install pulseaudio pulseaudio pulseaudio-esound-compat \
pulseaudio-module-gconf pulseaudio-module-hal pulseaudio-module-x11 \
pulseaudio-utils libnotify-bin

Dovete ora configurare pulseaudio, prima aggiungete il vostro utente ai gruppi di pulseaudio

sudo adduser utente pulse
sudo adduser utente pulse-access

poi create con il vostro editor preferito (lanciato da root) il file

/etc/asound.conf

ed inserite

pcm.!default {
type pulse
}

ctl.!default {
type pulse
}

pcm.pulse {
type pulse
}

ctl.pulse {
type pulse
}

con l'editor aperto create un nuovo file, che sarà il nostro script per il cambiamento dell'output
/usr/local/bin/audio-device-switch.sh

e inserite questo codice

#!/bin/bash
declare -i sinks_count=`pacmd list-sinks | \
 grep -c index:[[:space:]][[:digit:]]`
declare -i active_sink_index=`pacmd list-sinks | \
  sed -n -e 's/\*[[:space:]]index:[[:space:]]\([[:digit:]]\)/\1/p'`
declare -i major_sink_index=$sinks_count-1
declare -i next_sink_index=0

if [ $active_sink_index -ne $major_sink_index ] ; then
next_sink_index=active_sink_index+1
fi

#change the default sink
pacmd "set-default-sink ${next_sink_index}"

#move all inputs to the new sink
for app in $(pacmd list-sink-inputs | \
 sed -n -e 's/index:[[:space:]]\([[:digit:]]\)/\1/p');
do
pacmd "move-sink-input $app $next_sink_index"
done

#display notification
declare -i ndx=0
pacmd list-sinks | \
sed -n -e 's/device.description[[:space:]]=[[:space:]]"\(.*\)"/\1/p' | \
 while read line;
do
if [ $next_sink_index -eq $ndx ] ; then
notify-send -i notification-audio-volume-high \
 "Output passato a: " "$line"
exit
fi
ndx+=1
done;

Ora dovete eseguire alcune operazioni (rendere eseguibile lo script, rimozione vecchie configurazioni, installazione/rimozione ultimi pacchetti) per essere sicuri che pulseaudio funzioni
sudo chmod 755 /usr/local/bin/audio-device-switch.sh
mkdir ~/pulse-backup && cp -r ~/.pulse /etc/pulse -t ~/pulse-backup/
sudo rm -r ~/.pulse
sudo apt-get install libasound2-plugins libsdl1.2debian-pulseaudio \
gstreamer0.10-pulseaudio
Ultimo passaggio è aggiungere il nostro script shortcuts da tastiera; su kde4 basta andare su Impostazioni di Sistema -> Azioni di immissione -> Azioni predefinite -> tasto destro -> Nuovo -> Scorciatoia globale -> Comando/Url e poi scegliere la combinazione dei tasti per eseguire il comando nella finestra Attivazione e inserire il comando "audio-device-switch.sh" in Azione.
Ora potete riavviare il vostro computer e provare la combinazione dei tasti della tastiera scelta precedentemente, dovrebbe apparire una notifica col nome del output audio che verrà utilizzato (se per caso non succede nulla, lanciate il comando da console e controllate l'errore)

Feed RSS
Cerca
Licenza


2010-2012 - www.lucadelu.org

This site is powered by CMS Made Simple
Designed by Luca Delucchi based on InnovativeStylee of Web Stylee.

Mi piace