2016-11-25 97 views
1

我使用如何以编程方式在声音和静音模式之间切换?

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

// and 

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

我栽种了这个代码所做的哔哔声(哔(频率,硬脑膜))几乎在这里和那里hundread倍(与各种频率,时长和次数)。

现在,我想以编程方式在声音和静音之间切换。

我可以做的东西像

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

应该是乏味的工作要做。 有没有更好的点子?

谢谢。

+1

如果您在示例中使用了'幻数',那么您需要执行'繁琐的工作'。虽然在它,更好地定义一些GLOBAL变量,你可以在你的代码中以编程方式更改并使用它们来替换'魔术数字' – Steve

+0

我怀疑有一种方法可以避免你单调乏味的工作,因为'嘟嘟声“方法,除了一个布尔值,表示它是否应该发出嘟嘟声,所以你必须自己检查一下。 – HimBromBeere

+0

如果我是你,我会创建一个自己的(singleton class +)函数(int,int),它会调用Kernel32本身的嘟嘟声......然后你将会遇到更少的问题。从来没有,你不会有另一种方式,然后重构这个我猜... – TripleEEE

回答

4

如果一切都定义为Beep(x,y)方法,您可以编写自己的方法,然后重新编写 - >将所有方法重命名为MyBeep(x,y)

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

嗯,听起来不错。虽然看起来太空梭技术给我。好的,我会试试看。我是初学者,你可以很容易地知道我的问题。你的回答对我来说很珍贵。谢谢。 Tatranskymedved – Jason

+0

没问题。 =) – Tatranskymedved

+0

完美的作品!再次感谢。 – Jason

相关问题