Bonjour,

Je suis en train de travailler sur un programme où j'ai besoin de jouer des sons sur deux cartes son distinctes :
- Sur une carte reliée à un casque, pour diffuser des informations confidentielles
- Sur une carte reliée à des enceinte, pour diffuser des informations "publiques"

Pour comprendre, je suis en train d'écrire un petit programme pour jouer à Pictionnary en famille : le programme doit lire le mot à dessiner dans le casque (pour les plus jeunes qui ne savent pas lire), mais le thème doit être énoncé pour tout le monde, ainsi que le "bip" annonçant que le temps imparti pour dessiner est écoulé.

Voici donc mon code actuel :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
        private void Timer_Tick(object sender, EventArgs e)
        {
            progressBar1.Value = temps--;
            if (temps == 0)
            {
                /*
                player initialisé comme ça :
                ResourceManager rm = new ResourceManager(typeof(Form1));
                player = new System.Media.SoundPlayer();
                player.Stream = rm.GetStream("perdu.wav");
                player.LoadAsync();
                */
 
                timer.Stop();
                player.Play(); // Je voudrais jouer ça sur un device (avec enceintes)
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            timer.Stop();
            label1.Text = string.Empty;
            label2.Text = string.Empty;
 
            temps = progressBar1.Maximum;
 
            var m = ChoisirMot();
            if (m.Item1 == null)
            {
                return;
            }
            else
            {
                label1.Text = m.Item1;
                label2.Text = m.Item2;
 
                /*
                voice initialisé comme ça :
                SpeechSynthesizer voice = new System.Speech.Synthesis.SpeechSynthesizer();
                */
                voice.SpeakAsync($"Thème {m.Item1}. Vous devez dessiner \"{m.Item2}\"."); // Je voudrais que ce son soit joué sur un autre device, celui avec le casque
            }
 
            timer.Start();
        }

Je ne trouve pas, ni dans System.Media, ni dans System.Speech.Synthesis comment spécifier le device audio à utiliser
Les seuls exemples que je trouve sur le net concernent l'utilisation de DirectSound, mais autant pour jouer un wav je veux bien, autant pour le speech, je sens que ça va être plus compliqué déjà...