C/C# peu importe, Lister les cartes son

Lossius30 -  
 Lossius30 -
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. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    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
  2. Nico# Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   102
     
    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
  3. Lossius30
     
    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
  4. Lossius30
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nico# Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   102
     
    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
  7. Lossius30
     
    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