2016-11-25 94 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

相關問題