播放wav文件,在项目中有相对路径



我在wav文件的相对路径和复制方面有一些问题。我有这个简单的代码,工作完美:

SoundPlayer player = new SoundPlayer();
player.SoundLocation = @"C:UsersAdminDocumentsVisual Studio 2012ProjectsTestProjectTestProjectDataSoundscar.wav";
player.Play();

我想用相对路径播放那个文件,但是我没有成功:

SoundPlayer player = new SoundPlayer();
player.SoundLocation = @"DataSoundscar.wav";
player.Play();

谢谢!

Data目录是否在应用程序的根目录中?是否复制目录内容作为输出?

如果是这样,你是指DataSoundscar.wav吗?

如果从Visual Studio运行,将在[projectroot][release]binDataSoundscar.wav

如果在bin文件夹中没有看到此目录,则需要确保选择了要复制到输出目录(该目录将复制目录结构)的所有文件。您可以通过单击项目中的文件并选择该文件作为输出来完成此操作。

使用path . getfullpath ("relativ/path")获取文件的完整路径

您可能最好还是使用绝对路径。您可以从exe文件中获得根路径,然后将您的相对路径附加到它。这样的:

// getting root path
string rootLocation = typeof(Program).Assembly.Location;
// appending sound location
string fullPathToSound = Path.Combine(rootLocation, @"DataSoundscar.wav");
player.SoundLocation = fullPathToSound;

这是为我工作

System.Media.SoundPlayer player1 = new System.Media.SoundPlayer(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"1.wav");
   //WindowsFormsApplication4.exe is name of name space this file name found in Debug file
 //you should copy your "sound.wav" into your Debug file

      string x = (Assembly.GetEntryAssembly().Location + "");
      x = x.Replace("WindowsFormsApplication4.exe", "sound.wav");
      SoundPlayer player1 = new SoundPlayer(x);
      player1.Play(); 

相关内容

  • 没有找到相关文章

最新更新