C/C# peu importe, Lister les cartes son

Bonjour,

Je suis à la recherche d'un programme très très simple. Le principe est simple, on l'exécute via "cmd" puis "cartesSon.exe -list" et qui retournerais la liste des cartes son disponibles sur l'ordinateur, du style :
1-REAL4
2-USBM

Je suis aussi à la recherche d'un lecteur MP3 en ligne de commande très basique :
Lecture / Pause / Stop / Seek / Volume / Carte son à utiliser

Quelqu'un connait si de telles appli existent ? et si ça n'existe pas, me donner des pistes pour que je les programme (d'après ce que j'ai vu, en C# on utilise directX et le code n'a pas l'air facile, mais pas non plus infaisable...) ?

Merci d'avance

6 réponses

  1. Bonjour,

    Pour la liste des cartes son, je ne sais pas, mais pour la lecture MP3 en ligne de commande, VLC peut faire ça très bien.

    Xavier
    0
    1. slt,

      Pour lister les cartes son tu peut faire comme sa en C#

      using System;
      using System.Management;
      using System.Windows.Forms;
      
      namespace CarteSon
      {
          public class CarteSonListe
          {
              public static void Main()
              {
                  try
                  {
                      ManagementObjectSearcher searcher = 
                          new ManagementObjectSearcher("root\\CIMV2", 
                          "SELECT * FROM Win32_SoundDevice"); 
      
                      foreach (ManagementObject queryObj in searcher.Get())
                      {
                         Console.WriteLine("Name: {0}", queryObj["Name"]);
                      }
                  }
                  catch (ManagementException ex)
                  {
                      MessageBox.Show("Erreur: " + ex.Message);
                  }
              }
          }
      }
      


      Et pour la lecture mp3 il suffit d'avoir telecharger le SDK directX et de faire

      var lecteur = new Microsoft.DirectX.AudioVideoPlayback.Audio(chemin_de_la_musique);
      lecteur.Play();
      
      0
      1. Merci Nico# pour ta source !

        Reivax96, je ne crois pas qu'on puisse choisir la carte son en ligne de commande avec vlc. je vais creuser la piste
        0
        1. Nico#, c'est nickel pour le listing mais par contre, tu spécifies comment ensuite la carte son à utiliser ?

          var lecteur = new Microsoft.DirectX.AudioVideoPlayback.Audio(chemin_de_la_musique).toSoundCard(maCarte);
          lecteur.Play();

          ?

          Merci d'avance !
          0
          1. Bon alors de tete vite fais sur le tas je dirait de faire comme sa :

            Je vais tout faire en DirectX meme la recherche de carte car c'est mieux d'utiliser qu'une techno.

            
            var ListeCarteSon = new DevicesCollection();
            			
            			
            			for(int i = 0; i < ListeCarteSon.Count; i++) {
            
            				Console.WriteLine(ListeCarteSon[i].Description);
            			}
            			
            
            			
            			var device = new Device(ListeCarteSon[0].DriverGuid);
            			ListeCarteSon.SetCooperativeLevel(this.Handle, CooperativeLevel.Priority);
            			var _d = new BufferDescription();
            			_d.Flags = BufferDescriptionFlags.ControlVolume | BufferDescriptionFlags.ControlFrequency | BufferDescriptionFlags.ControlPan | BufferDescriptionFlags.ControlEffects;
            
            var son = new SecondaryBufferCheminFichierMP3, _d, device);
            		son.Volume = 100;
            son.Play(0,BufferPlayFlags.Default);
            
            0
            1. C'est déjà un très très bon début !

              Je télécharge de quoi coder en C# et je vais faire des tests, on verra ce que ça donne !

              En tout cas merci pour votre aide et particulièrement nico#
              0