如何使用C#

时间:2016-01-31 17:52:59

标签: c# wav

如何从Properties.Resources播放wav文件?

我尝试了一些代码,但每次Priperties.Resource.myFile给我byte[]但我的代码需要string路径,而不是byte[]数组。

    System.Media.SoundPlayer player = new System.Media.SoundPlayer();

    player.SoundLocation = @"myFile.wav";
    player.Play();

我不想使用某些临时文件。可以从资源直接播放吗?

感谢您的建议!

2 个答案:

答案 0 :(得分:0)

  

那么,我可以从资源中播放WAV文件吗?

您可以使用Stream这样的属性:

System.Media.SoundPlayer player = new System.Media.SoundPlayer();

player.Stream = new MemoryStream(data);
player.Play();

data是您从资源文件中获取的byte[]

<强>更新

Properties.Resources.myFile实际上应该是一个流,所以请直接使用它:

System.Media.SoundPlayer player = new System.Media.SoundPlayer();

player.Stream = Properties.Resources.myFile;
player.Play();

答案 1 :(得分:0)

据我所知,有两种方法可以做到这一点,见下文:

  1. 使用文件路径
    首先将文件放在项目的根文件夹中,然后无论您在Debug还是Release模式下运行程序,都可以肯定地访问文件。

        var basePath = System.AppDomain.CurrentDomain.BaseDirectory;
        SoundPlayer player = new SoundPlayer();
        player.SoundLocation = Path.Combine(basePath, @"./../../Reminder.wav");
        player.Load();
        player.Play();
    
  2. 使用资源
    按照下面的动画,将“现有文件”添加到项目中。

enter image description here

        SoundPlayer player = new SoundPlayer(Properties.Resources.Reminder);
        player.Play();

这种方式的优势是:
运行该程序时,仅需要复制“ bin”目录下的“ Release”文件夹。