就是我现在做了一个项目,这个项目需要播放一个声音文件,比如代码是System.Media.SoundPlayer sp = new System.Media.SoundPlayer();                sp.SoundLocation = @"C:\\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\baojin\baojin\jingbao.wav";
                sp.Play();
可是我现在写的这个播放地址是一个决定的路径,一但我把这个程序发布了安装到别人的机器上就播放不了了,那我应该怎么办呢,我已经把这个文件放到我的项目目录下了,那我如何写这个路径才能让我在把这个项目安装在别人的机器上的时候也能让这个声音文件正常播放呢?

解决方案 »

  1.   

    System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + @"/error.wav");
      

  2.   

    放到项目Debug目录下!用的时候直接"csdn.wav"要么在项目里面用文件夹保存!!
      

  3.   

    这样写就可以得到相对路径了 System.Media.SoundPlayer sp = new System.Media.SoundPlayer();                sp.SoundLocation =Application.StartupPath + @"baojin\jingbao.wav";
                    sp.Play();
    Application.StartupPath + @"\Images\Liveglod.jpg");
      

  4.   

    2楼正解,但是我觉得可以再取得绝对路径的时候用File.Exists()判断文件是否存在,如果存在就播放
      

  5.   


    System.Media.SoundPlayer sp = new System.Media.SoundPlayer();                sp.SoundLocation = @"C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\baojin\baojin\jingbao.wav";
                    sp.Play();
    这样试试,是不是因为在盘符后面多加了个斜杠?
      

  6.   

    System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + @"/error.wav");
    是不是整个把这段代码替换掉我之前写的那个就行了,只要把代码换成
    System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + @"/jingbao.wav");
    就可以了,因为我的那个声音文件的名字是jingbao,对么?
      

  7.   

    是的@"/error.wav"应该改成@"\error.wav"不过斜杠方向反了,C#竟然也能正常播放……
      

  8.   

    sp.SoundLocation = @"jingbao.wav";
    sp.Play();wav和程序放一起,直接用相对路径不就可以了
      

  9.   

    弱弱的再问一下,如果要停止呢,以前我都是直接sp.stop();现在我应该怎么做呢?
      

  10.   

    播放可以用这个System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + @"/jingbao.wav");
    的话,那要中止这个声音文件应该怎么办??
      

  11.   

    建议把硬盘搬过去        或者建个一样的路径
    ===============
    先判断文件存在不 再使用System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + @"/文件名");
    else
    提示
      

  12.   

    哦,我明白了,是不是在下面加一个sndPlayer.play();
    我加了,可是运行时提示我确认是否有这个文件,可是我确实有这个文件啊,是不是应该把这个文件放在哪一个指定的文件夹里啊?
      

  13.   

    比如你的exe是在...\Debug目录下,你的音乐文件在...\Debug\Music目录下,那你就这样写: fileName=Application.StartupPath+"\\Music\\爱.mp3"注意是双斜杠哦
      

  14.   


    假设我的声音文件是存放在Debug文件夹里面,那我是不是就应该写成 System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + @"\\Debug\\jingbao.wav");
    这样么,可是还是运行出问题...
      

  15.   

    假设你的声音文件是存放在Debug文件夹里面,比如:jingbao.wav 放在和你的exe同一个目录下,那就是System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + "\\jingbao.wav");用\\就没有@号
      

  16.   

    你发布的时候,记得将音乐文件  就是那些wav、mp3文件跟你的主程序的exe放在一个目录下打包给用户准没事   哥负责。。  嘿嘿