IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Gérer l'audio Output via C#


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Gérer l'audio Output via C#
    Bonjour,

    Je cherche à créer une application dans laquelle je peux gérer le son de mon système.

    Quand je di gérer j'entends faire les actions suivantes :

    • Modifier le périphérique de lecture par défaut
    • Monter/Descendre le son
    • Mute/Demute le périphérique


    J'aurais voulu tout faire moi-même en appelant les fonctions systèmes de Windows (user32 ou sys32) mais, je n'ai pas l'impression qu'il y ai quoi que ce soit à ce niveau...

    Y a-t-il une API Windows intégrée ?

    La seul chose que j'ai réussi à faire c'est de lister les périphériques avec une requête wmi qui donne ceci :
    Code : 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
     
            #region DeviceOutput
            public List<string> GetAvailableDevices
            {
                get
                {
                    List<string> res  =new List<string>();
                    ManagementObjectSearcher management = new ManagementObjectSearcher()
                    {
                        Query = new ObjectQuery("SELECT Name FROM Win32_SoundDevice WHERE StatusInfo = 3")
                    };
                    ManagementObjectCollection coll = management.Get();
     
                    if (coll != null)
                    {
                        foreach (ManagementObject obj in coll)
                            res.Add(obj.GetPropertyValue("Name").ToString());
                    }
                    return res;
                }
            }
            #endregion

    Quelles sont les possibilités ? Puis-je faire mes actions via requête WMI (ce que je doute fort) ?

    Dois-je écrire du code bas niveau ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Il existe le projet NAudio sur CodePlex. Je ne connais pas bien mais a priori c'est très complet et open source.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Je voudrais justement savoir si il est possible de se passer de lib externe.

    Avec des requêtes WMI ou autre par exemple ?

    Mon problème c'est vraiment que je voudrais le faire moi-même.

    Si je fais appel qu'aux autres lib j'ai pas fini de rien faire/apprendre... C'est vraiment de la curiosité pour le coup.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je n'ai pas de solution a proposer, mais si tu veux apprendre rien ne t'empeche de reprendre le code source de la librairie et de regarder comment ca marche ! Ensuite tu peux reprendre des bouts de code qui t'interessent directement dans ton projet.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    C'est pas faux, je vais essayer de faire ça du coup.

    Merci.

  6. #6
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    salut regarder aussi dans les commandes win32 MCI

    Si c'est compliqué à exploiter en NET alors faire une simple dll en langage C/C++ qui et chargée au lancement du projet.

    Sinon il y a Direct Sound mais là c'est engager la grosse artillerie pour pas grand chose ça dépend quel est la finalité du projet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/10/2011, 12h01
  2. [AC-2003] Gérer une BDD access via PHP
    Par Domi974 dans le forum Access
    Réponses: 1
    Dernier message: 31/05/2011, 14h02
  3. Gérer une application .NET via mIRC
    Par Whether dans le forum IRC / mIRC
    Réponses: 2
    Dernier message: 14/10/2008, 19h31
  4. gérer les objets word via le langage VBA
    Par sisiniya dans le forum VBA Word
    Réponses: 13
    Dernier message: 23/03/2008, 21h27
  5. gérer les objets word via le langage VBA
    Par sisiniya dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 14/03/2008, 23h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo