PulseAudio pacmd
no es capaz de cambiar los sumideros predeterminados mientras hay una transmisión activa en la entrada del sumidero. Sin embargo, todavía hay una manera de lograr esto.
Cambiar el sumidero predeterminado desde la línea de comando
Primero necesitamos determinar el número de índice de los sumideros que queremos cambiar. Esto se puede hacer llamando a:
pacmd list-sinks
Dependiendo de nuestro sistema, esto le dará una lista más o menos extensa de sumideros y propiedades a las que actualmente se puede acceder:
>>> 2 sink(s) available.
* index: 0
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
driver: <module-alsa-card.c>
:
:
index: 1
name: <alsa_output.pci-0000_00_14.2.analog-stereo>
driver: <module-alsa-card.c>
El index
o el name
dado aquí es lo que necesitamos para abordar el sumidero por línea de comando. El sumidero predeterminado actual está marcado con un asterisco (aquí 0
).
Para poder cambiar los sumideros predeterminados desde la línea de comando, es posible que necesitemos desactivar la restauración del dispositivo de destino de la transmisión editando la línea correspondiente en /etc/pulse/default.pa
:
load-module module-stream-restore restore_device=false
Para cambiar el sumidero de salida predeterminado a sumidero 1
, ejecutamos
pacmd set-default-sink 1
El éxito se puede visualizar abriendo el menú Configuración de sonido .
Mover una corriente a otro sumidero
Cambiar el sumidero predeterminado mientras tenemos una transmisión de entrada activa que se reproduce en un sumidero dado no tiene ningún efecto . Esto debería hacerse moviendo esta entrada a otro sumidero.
pacmd list-sink-inputs
nos dirá el índice de la secuencia de entrada
>>> 1 sink input(s) available.
index: 5
driver: <protocol-native.c>
Ahora sabemos que queremos mover el flujo de entrada 5
al receptor 1
llamando
pacmd move-sink-input 5 1
o volver a hundirse 0
si nos gusta. Esto se realizará de inmediato sin necesidad de detener la reproducción.
Cambiar el sumidero predeterminado mientras se juega
Por supuesto, podemos combinar esos dos comandos para cambiar inmediatamente los sumideros predeterminados durante la reproducción, por ejemplo, con
pacmd set-default-sink 1 & pacmd move-sink-input 5 1
Un inconveniente de este método es que el índice de flujo de entrada cambia cada vez que detenemos y reiniciamos el reproductor de música. Por lo tanto, siempre tenemos que encontrar el índice de flujo actual antes de poder cambiar usando la línea de comando.
pactl list short sinks
>4 bluez_sink.FC_A8_9A_2C_EB_0B module-bluez5-device.c s16le 1ch 8000Hz IDLE
ahora solo haga referencia al nombrepactl set-default-sink bluez_sink.FC_A8_9A_2C_EB_0B
set-default-sink
pero aún necesitará el número de índice activadomove-sink-input
.0 sink input(s) available.
? ¿Pero ese flash player de mierda todavía reproduce audio?client(s) logged in
sección depacmd list
He escrito un script simple para mover todas las entradas de sumidero automáticamente.
Uso:
./movesinks.sh <sink number>
fuente
Versión mejorada del script @Gaco
mi copia de tiempo de ejecución está en github e incluye también el cambio automático de canal maestro para
kmix
fuente
Hay un script de ruby (que originalmente bifurqué y reescribí secciones) que le permite cambiar los sumideros, el volumen y el estado de silencio predeterminados desde la línea de comandos.
fuente
Creé cosas de diferentes lugares y se me ocurrió este script para configurar un JAMBOX bluetooth una vez que se ha emparejado. Tu MAC será diferente, por supuesto. Como controlo el volumen JAMBOX a través de la aplicación Clementine, el 130% del volumen funciona mejor en mi caso. Es posible que desee cambiar esto, junto con el rhythmbox.png (fue la única imagen de altavoz que pude encontrar en mi computadora). La comprobación de errores es rudimentaria, pero funciona de manera bastante confiable. Puse esto en un iniciador de escritorio para mayor comodidad en un netbook ASUS.
fuente
pactl list short
. Puede simplificar la siguiente línea haciendo el corte directamente después:pactl list short sink-inputs | cut -f1 | while read streamId
funciona para mí.FREGADEROS DE CÍRCULO.
El script Gaco con solo una línea más para alternar en círculo a través de los sumideros disponibles.
fuente
Y aquí hay un script que también alternará entre sumideros:
http://marginalhacks.com/index.0.html#pulse-switch-out
Aquí está el script a continuación:
fuente
Basado en la respuesta de Gaco, lo reescribí un poco para mi uso personal. Quizás alguien lo encuentre útil. Es para alternar mis altavoces USB y auriculares USB Gaming.
fuente
Creo que hay una opción más que vale la pena mencionar y está disponible en la página oficial de preguntas frecuentes sobre PulseAudio en freedesktop.org . Bajo el siguiente título:
Proporcionan el siguiente script para hacerlo:
fuente
Adapté @mpapis a un simple "alternar sink0 o sink1" cuando se ejecutó:
fuente