MessageBox.Show("ok");           
            SoundPlayer s = new SoundPlayer(@"D:\MSG.wav");// 定义播放器,选择播放文件,在这里用的是系统声音
            s.Load();            s.Play(); //播放音频         为什么播放不了文件,路径没问题

解决方案 »

  1.   

    这样试试
    System.Media.SoundPlayer player = new System.Media.SoundPlayer();
    player.SoundLocation = @""D:\MSG.wav";
    player.Load();
    player.Play();
      

  2.   


            // 定义PlaySound()要使用的常数
            public const int SND_FILENAME = 0x00020000;
            public const int SND_ASYNC = 0x0001;        // 导入 Windows PlaySound() 函数
            [DllImport("winmm.dll")]
            public static extern bool PlaySound(string pszSound,
                int hmod,
                int fdwSound);        public static void MsgSound(string str)
            {
                string wav = Application.StartupPath + "\\" + str;
                PlaySound(wav,
                    0,
                    SND_FILENAME | SND_ASYNC);
            }
      

  3.   

    Quote: 引用 1 楼 Chinajiyong 的回复:

    这样试试
    System.Media.SoundPlayer player = new System.Media.SoundPlayer();
    player.SoundLocation = @""D:\MSG.wav";
    player.Load();
    player.Play();[/quote
    我肯定是引用的,不然编辑器也通不过
      

  4.   

    很感谢,不过你这是另一种播方声音的方法了,我现在只是要找出为什么用SoundPlayer这个类就不行
      

  5.   


    SoundPlayer s = new SoundPlayer(@"D:\MSG.wav");
    s.Play();
    不加Load方法试试。
      

  6.   

    try catch下有没有错误,很奇怪,我试了下可以的
      

  7.   

    你是不是运行时会报“声音 API 只支持播放 PCM 波形文件”的异常?我用这段程序试了两个wav文件,其中一个是有问题的。http://en.wikipedia.org/wiki/WAV按照wiki中对wav文件的解释,它是有不少格式类型的。而根据这个异常,SoundPlayer显然只支持PCM格式的wav文件。
      

  8.   

    好奇怪啊,try过了,有的会进catch,但是不进catch的也放不出声音,真是郁闷啊
      

  9.   

    你可以用html5中新增的embed标签
      

  10.   

    感谢,感谢。明白为什么了,我换了文件就可以了,我那个文件原来的格式是wma,然后我手动修改成wav,所以就这样了,感谢你的回答