2016-11-25 2 views
1

J'ai fait des bips en utilisantComment puis-je basculer par programme entre le son et un mode coupé?

[DllImport("KERNEL32.DLL")] 
extern public static void Beep(int freq, int dur); 

// and 

Beep(2222, 55); 
Beep(3333, 55); 

J'ai planté ce code (Signal sonore (fréq, Doura)) près d'un temps de hundread ici et là (avec différentes fréquence, la durée et le temps). Maintenant, je veux basculer entre Sound et Mute Programtically.

je pouvais le faire avec quelque chose comme

if (my_Flag) 
{ 
    Beep(2222, 55); 
    Beep(3333, 55); 
} 

Il devrait être un travail fastidieux à faire. Y a-t-il de meilleures idées?

Merci.

+1

Si vous avez utilisé des 'nombres magiques' comme vous le montrez dans votre exemple, vous devez effectuer le 'travail fastidieux'. Alors que c'est là, mieux définir une variable GLOBAL que vous pouvez modifier par programmation dans votre code et les utiliser pour remplacer les «nombres magiques» – Steve

+0

Je doute qu'il existe un moyen d'éviter ce que vous entendez par un travail fastidieux car il n'y a pas de surcharge du ' Bip'-méthode qui excepte un booléen indiquant si elle devrait produire un bip ou non, donc vous devez vérifier vous-même. – HimBromBeere

+0

Si j'étais vous, je créerais une propre fonction (singleton class +) (int, int) qui appellerait Beep of Kernel32 lui-même ... Alors vous aurez beaucoup moins de problèmes avec quelque chose comme ça. Jamais le moins, vous n'aurez pas une autre façon de refactoriser ce que je suppose ... – TripleEEE

Répondre

4

Si tout est défini comme méthode Beep(x,y), vous pouvez écrire votre propre méthode puis Refactor-> Renommer toutes les méthodes en MyBeep(x,y) par exemple.

public void MyBeep(int freq, int dur) 
{ 
    if(myFlag) 
     Beep(freq, dur); 
} 
+1

Hmmmm Ça me semble bien. Bien que regarde la technologie de navette spatiale à moi. OK, je vais essayer. Je suis un débutant, vous pouvez le savoir facilement avec ma question. Votre réponse est précieuse pour moi. Merci. Tatranskymedved – Jason

+0

Pas un problème. =) – Tatranskymedved

+0

Fonctionne parfaitement !! Merci encore. – Jason