首页 > CSharp > c#蜂鸣报警系列声音函数.

c#蜂鸣报警系列声音函数.

2009年3月20日

在C#中可以通过以下四种方式来实现蜂鸣或者报警,播放声音之类的功能.
1). Beep的报警实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   // 添加引用
   using System.Runtime.InteropServices;
 
   [DllImport("user32.dll")]
   public static extern int MessageBeep(uint uType);
   uint beepI = 0x00000030;
 
    //发出不同类型的声音的参数如下:
    //Ok = 0x00000000,
    //Error = 0x00000010,
    //Question = 0x00000020,
    //Warning = 0x00000030,
    //Information = 0x00000040
 
    // 然后在程序中调用
    MessageBeep(beepI);

2) 调用Microsoft.ViualBase中的Beep():
1.先引入命名空间:using Microsoft.VisualBasic;
2.调用:Interaction.Beep();
在编译时注意要引用Microsoft.VisualBasic.dll程序集,否则编译不能通过。
另外,如果是Console应用,可以用Console.WriteLine(”\a”);来代替Beep()。

3) 通过主板蜂鸣器发出蜂鸣

1
2
3
4
5
6
7
8
9
10
[DllImport("kernel32.dll",   EntryPoint="Beep")]   
   // 第一个参数是指频率的高低,越大越高,第二个参数是指响的时间多长
  public   static   extern   int   Beep   (   
  int   dwFreq,   
  int   dwDuration   
  );   
 
  private   void   button1_Click(object   sender,   System.EventArgs   e)   {   
  Beep(500,100);   
  }

4) 调用PlaySound(string pszSound,int hmod,int fdwSound)来播放声音

1
2
3
4
5
6
  [DllImport("winmm.dll")]
  public static extern bool PlaySound(string pszSound,int hmod,int fdwSound);
  public const int SND_FILENAME = 0x00020000;
  public const int SND_ASYNC = 0x0001; 
 
  PlaySound("alarm8.wav",0,SND_ASYNC|SND_FILENAME);

admin CSharp

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.