Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/10/2020, à 18:16

0livier

[Résolu] Attribuer une carte son à une appli avec Pulseaudio en CLI

Bonsjours,

Je souhaiterai pouvoir attribuer une carte son spécifique au lancement d'une application, en ligne de commande, avec Pulseaudio.

Je sais que la chose est graphiquement possible avec Pulseaudio Volume Control. Pour cela je lance l'application et je choisis la carte dans l'onglet "lecture".
Mais je voudrais pouvoir faire cela en ligne de commande afin de pouvoir automatiser ces attributions dans un fichier bash (j'ai plus d'une dizaine de cartes son).

Il y a bien la commande :

pactl set-default-sink 1

qui permet de changer la carte par défaut, mais elle change la carte pour toutes les applications déjà lancées.
Ce n'est donc pas ce que je cherche.

J'ai regardé dans

man pulse-cli-syntax

mais je n'ai pas trouvé.

Auriez-vous une idée ?
Merci.

Dernière modification par 0livier (Le 03/11/2020, à 15:14)

Hors ligne

#2 Le 25/10/2020, à 21:45

inbox

Re : [Résolu] Attribuer une carte son à une appli avec Pulseaudio en CLI

Salut,

Je n'ai rien trouvé en français.

Il y a donc ce sujet de 2014 ou il est question d'utiliser les variables d'environnement ALSA_CARD ou ALSA_PCM_CARD. Dans cet autre sujet datant de 2009 (!), il est aussi question de ces variables. Ce dernier sujet précise un peu comment lancer un programme avec une carte son spécifique.

Il te faudra aussi, trouver le nom de tes différentes cartes son. Après avoir parcouru le dernier sujet, on voit que cela est expliqué. big_smile Un des commentaires de 2015 indique que ça fonctionnait toujours à cette date.

A+

Dernière modification par inbox (Le 25/10/2020, à 21:48)


Un problème résolu ? Indiquez le en modifiant le titre du sujet.

Hors ligne

#3 Le 03/11/2020, à 15:13

0livier

Re : [Résolu] Attribuer une carte son à une appli avec Pulseaudio en CLI

Merci inbox,

Ces solutions ne semblent pas fonctionner (mais j'ai appris plein de choses... smile)
J'ai fini par poser la question sur la mailing liste de Pulseaudio et ils m'ont dirigé vers la variable d'environnement PULSE_SINK

Que l'on peut renseigner avec le nom de la carte choisie ; nom que l'on peut récupérer avec cette commande

pactl list sinks | grep Nom
	Nom : alsa_output.pci-0000_00_1f.3.analog-stereo
	Nom : alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo
	Nom : alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo.2

Dans ce cas, la commande que je cherchais serait, si l'on souhaite par exemple lancer Ibniz :

PULSE_SINK=alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo.2 ibniz

Or, la partie " analog-stereo.2" du nom de la carte dépend du nombre de carte identiques qui sont branchées, pas de la carte elle-même.
Si j'en branche dix, puis que je retire la première, toutes les cartes vont changer de nom.
J'utilise donc l'index des cartes que l'on récupère avec :

pacmd list-sinks | egrep 'index|name:'
    index: 2
	name: <alsa_output.pci-0000_00_1f.3.analog-stereo>
    index: 6
	name: <alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo>
  * index: 7
	name: <alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo.2>

Commande que j'ai trouvée dans tes liens, inbox. smile

Voilà, c'est résolu pour moi.

Dernière modification par 0livier (Le 03/11/2020, à 15:16)

Hors ligne