C# 如何使用PC喇叭發出聲音
今天在研究怎樣使用C#來呼叫PC喇叭發出聲音,這東西可以運用到裝XP Embedded且沒有音效卡的工業電腦上面
由於C#並沒有物件可以供我們使用,所以必須使用Windows API來達到效果
我們必須使用 Kernel32.dll 中的 Beep function 來達到功能
MSDN 介紹 : http://msdn.microsoft.com/en-us/library/ms679277(VS.85).aspx
private static extern int Beep(int dwFreq, int dwDuration);
Beep共有兩個參數,說明如下
dwFreq : 發聲頻率 37~32767(0x25~0x7FFF) dwDuration : 延遲時間 (ms)
發出小星星聲音的程式碼如下
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace Beep
{
class Program
{
[DllImport("kernel32.dll")]
private static extern int Beep(int dwFreq, int dwDuration);
public enum Music
{
Do = 523,
Re = 587,
Mi = 659,
Fa = 698,
So = 784,
La = 880,
Ti = 988,
Do2 = 1046
}
static void Main(string[] args)
{
Beep((int)Music.Do, 300);
Beep((int)Music.Do, 300);
Beep((int)Music.So, 300);
Beep((int)Music.So, 300);
Beep((int)Music.La, 300);
Beep((int)Music.La, 300);
Beep((int)Music.So, 600);
Beep((int)Music.Fa, 300);
Beep((int)Music.Fa, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Re, 300);
Beep((int)Music.Re, 300);
Beep((int)Music.Do, 600);
Beep((int)Music.So, 300);
Beep((int)Music.So, 300);
Beep((int)Music.Fa, 300);
Beep((int)Music.Fa, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Re, 600);
Beep((int)Music.So, 300);
Beep((int)Music.So, 300);
Beep((int)Music.Fa, 300);
Beep((int)Music.Fa, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Re, 600);
Beep((int)Music.Do, 300);
Beep((int)Music.Do, 300);
Beep((int)Music.So, 300);
Beep((int)Music.So, 300);
Beep((int)Music.La, 300);
Beep((int)Music.La, 300);
Beep((int)Music.So, 600);
Beep((int)Music.Fa, 300);
Beep((int)Music.Fa, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Mi, 300);
Beep((int)Music.Re, 300);
Beep((int)Music.Re, 300);
Beep((int)Music.Do, 600);
}
}
}
===========================這是簽名檔分隔線==============================
我沒有甚麼技術能力
不過卻希望在這邊跟大家分享自己遭遇的一些問題
希望大家有更好的方法可以跟我說!!
======================================================================