解决.net类SoundPlayer播放.wav格式音频的错误

来源:互联网 发布:js contain 编辑:程序博客网 时间:2024/06/06 02:52

    公司的项目中有播放声音的需求,刚开始时使用.net的System.Media.SoundPlayer 这个类,测试没有问题,但到了客户大量使用时,发现有些声音播放不了。

    没办法,改用windows提供的API来播放。

     [System.Runtime.InteropServices.DllImport("winmm.DLL", EntryPoint ="PlaySound", SetLastError =true, CharSet = CharSet.Unicode, ThrowOnUnmappableChar =    true)]

     private static externbool PlaySound(string szSound, System.IntPtr hMod, PlaySoundFlags flags);

    首先定义一个枚举:

    [System.Flags]

    public enum PlaySoundFlags : int

    {

          SND_SYNC = 0x0000,

         SND_ASYNC = 0x0001,

         SND_NODEFAULT = 0x0002,

         SND_LOOP = 0x0008,

         SND_NOSTOP = 0x0010,

         SND_NOWAIT = 0x00002000,

         SND_FILENAME = 0x00020000,

         SND_RESOURCE = 0x00040004

   }

   使用时:

   PlaySound (dialog1.FileName, new System.IntPtr(), PlaySoundFlags.SND_SYNC);

   这样播放任何是.wav扩展名的文件,就没问题了,自带的类有问题,就不要用了。

原创粉丝点击