WPF 发布.exe文件后,想给登录按钮增加音效,却提示.wav 文件不存在

问题在于.wav的音频文件在本地打包是可以使用的,但在程序发布后,源路径找不到对应的.wav文件。
这里我在对应工程项目里增加了.wav音频文件,并修改了.wav音频文件的属性,换成了嵌入的资源,让音频文件变为DLL嵌入在发布后的.exe程序里
查找资源的代码如下

//查找启动的程序集
Assembly asm = Assembly.GetExecutingAssembly();
            //查找当前程序的DLL
            String projectName = Assembly.GetExecutingAssembly().GetName().Name.ToString();
            //实例化播放声音的类
            System.Media.SoundPlayer player = new System.Media.SoundPlayer();
            //获取文件流
            Stream playMusic =asm.GetManifestResourceStream(projectName + ".playMusic" + ".SendMusic.wav");
            //将文件流赋值给 player.Stream
           player.Stream = playMusic;
           //异步
           player.LoadAsync();
           //播放音频
           player.Play()

这样就可以实现音频的播放啦。下面在附加一个将音频文件转为数组的方法。

 private byte[] Getbtte(string filename)
        {
            Assembly asm = Assembly.GetExecutingAssembly();
            Stream s = asm.GetManifestResourceStream(filename);
            if (s != null)
            {
                var file = new byte[s.Length];
                s.Read(file, 0, (int)s.Length);
                s.Close();
                return file;
            }
            else
            {

                return null;
            }
        }

你可能感兴趣的:(错误自查,wpf,windows)