C/C# peu importe, Lister les cartes son

Fermé
Lossius30 - 22 sept. 2011 à 14:24
 Lossius30 - 24 sept. 2011 à 20:39
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

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
22 sept. 2011 à 15:12
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
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
22 sept. 2011 à 22:49
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
23 sept. 2011 à 22:48
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
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