0

我有一个使用 Windows 媒体元素播放音乐的应用程序。播放音乐的代码如下:

   public void PlaySound()
    {

        string solutionPath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).Parent.Parent.Parent.FullName;
        string path = Path.Combine(solutionPath, "FolderNameWithinSolution", myMusic.wav);
        mediaElement.LoadedBehavior = MediaState.Manual;
        mediaElement.Stop();
        mediaElement.Source = new Uri(path, UriKind.RelativeOrAbsolute);
        mediaElement.Volume = 0.2;
        mediaElement.Play(); 


    }

myMusic.wav 是保存在 FolderNameWithinSolution 中的文件。这设置为内容并始终复制。在我部署它之前一切正常,然后应用程序就不会播放音乐。

我检查了应用程序文件,文件夹中出现了音乐,但音乐显示为 myMusic.wav.deploy。

有人可以帮助我在哪里设置不正确。我也尝试重命名应用程序文件中的文件以删除 .deploy 但这仍然不起作用,

4

1 回答 1

0

.Parent.Parent.Parent.FullNameproject\bin\debug意味着当您从目录运行程序时,您可能正在与 .SLN 文件相同的位置寻找 .WAV 文件。这不是 .WAV 文件在部署后所在的位置。此外,我认为Copy Always应该将 .WAV 文件复制到可执行文件所在的同一目录中。由于您使用可执行文件作为导航的起点来定位声音文件,因此您需要确保它位于在开发环境和部署之后,相对于可执行文件在完全相同的位置。

基本上,当您部署时,您的文件正在移动到其他地方。确保在构建配置和安装程序配置中都指定了它的位置。

于 2012-12-28T19:48:25.073 回答