zoukankan      html  css  js  c++  java
  • C# 中发声

    (一)播放音乐
    using System;
    using System.Runtime.InteropServices;

    namespace Sound
    {
     /// <summary>
     /// Summary description for PlaySound.
     /// </summary>
     public class PlaySound
     {
      internal class Helpers1
      {
       [Flags]
        public enum PlaySoundFlags : int
       {
        SND_SYNC = 0x0000,  /* play synchronously (default) */ //同步
        SND_ASYNC = 0x0001,  /* play asynchronously */ //异步
        SND_NODEFAULT = 0x0002,  /* silence (!default) if sound not found */
        SND_MEMORY = 0x0004,  /* pszSound points to a memory file */
        SND_LOOP = 0x0008,  /* loop the sound until next sndPlaySound */
        SND_NOSTOP = 0x0010,  /* don't stop any currently playing sound */
        SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
        SND_ALIAS = 0x00010000, /* name is a registry alias */
        SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
        SND_FILENAME = 0x00020000, /* name is file name */
        SND_RESOURCE = 0x00040004  /* name is resource name or atom */
       }

       [DllImport("winmm")]
       public static extern bool PlaySound( string szSound, IntPtr hMod, PlaySoundFlags flags );
      }
      internal class Helpers2
      {
       [Flags]
        public enum PlaySoundFlags : int
       {
        SND_SYNC = 0x0000,  /* play synchronously (default) */ //同步
        SND_ASYNC = 0x0001,  /* play asynchronously */ //异步
        SND_NODEFAULT = 0x0002,  /* silence (!default) if sound not found */
        SND_MEMORY = 0x0004,  /* pszSound points to a memory file */
        SND_LOOP = 0x0008,  /* loop the sound until next sndPlaySound */
        SND_NOSTOP = 0x0010,  /* don't stop any currently playing sound */
        SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
        SND_ALIAS = 0x00010000, /* name is a registry alias */
        SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
        SND_FILENAME = 0x00020000, /* name is file name */
        SND_RESOURCE = 0x00040004  /* name is resource name or atom */
       }

       [DllImport("winmm")]
       public static extern bool PlaySound( string szSound, IntPtr hMod, PlaySoundFlags flags );
      }

      public class Sound
      {
       public static void Play( string strFileName,int sign)
       {
        //Helpers1.PlaySound( strFileName, IntPtr.Zero, Helpers1.PlaySoundFlags.SND_FILENAME | Helpers1.PlaySoundFlags.SND_ASYNC );
        //Helpers1 Helpers1=new Helpers1();
        if(sign==1)
         Helpers1.PlaySound( strFileName, IntPtr.Zero, Helpers1.PlaySoundFlags.SND_FILENAME | Helpers1.PlaySoundFlags.SND_ASYNC |  Helpers1.PlaySoundFlags.SND_NODEFAULT);    
        else
         Helpers2.PlaySound( strFileName, IntPtr.Zero, Helpers2.PlaySoundFlags.SND_FILENAME | Helpers2.PlaySoundFlags.SND_ASYNC);    
       }
      }
     }
    }
    然后调用PlaySound.Sound.Play(@"..".."music"background.WAV",1);
    或者PlaySound.Sound.Play(@"..".."music"front.WAV",2);
    音乐类型为WAV格式

    (二)通过输入的汉字或字母发音
    需要添加引用using SpeechLib;
    下载地址:https://files.cnblogs.com/holym/Interop.SpeechLib.rar
        SpVoice Voice = new SpVoice();
        SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFDefault;
        Voice.Voice = Voice.GetVoices(string.Empty, string.Empty).Item(024);    //其中3为中文,024为英文
       Voice.Speak("alarm",SpFlags);
       Voice.Voice = Voice.GetVoices(string.Empty, string.Empty).Item(3);
       Voice.Speak("备容量系统有问题",SpFlags);

    (三)发出一阵鸣音
    using System.Runtime.InteropServices;

    [DllImport("kernel32.dll")]
     public static extern bool Beep(int frequency, int duration);

    System.Random r = new Random();
    for(int i = 0; i < 10000; i++) 
    {
         int c = r.Next(10000);      
         Beep(0, 100);
     }
  • 相关阅读:
    MT7601 AP模式移植
    dhcp server 移植记录
    MT7601 WG209模块驱动移植,并连接路由器
    git 忽略文件
    关于中文--Unicode之间互相转换流程的说明
    将文字拆成拼音得到首字母(返回多音字)
    Javascript 汉字转首字母的拼音 js文件(支持多音字的选择)
    如何使用netstat –ano|findstr “port”命令?
    notepad++如何修改主题
    Notepad++ 更换主题
  • 原文地址:https://www.cnblogs.com/longyi/p/1459774.html
Copyright © 2011-2022 走看看