C# 如何从WPF中的资源中获取mp3文件

C# 如何从WPF中的资源中获取mp3文件,c#,wpf,C#,Wpf,我想从resources获取default.mp3的URI,并在System.Windows.Media.MediaPlayer 我将mp3文件作为Content和copy always包含在参考资料文件夹中,但我不知道如何播放以获取URI。我目前正在这样做,但它不工作 uri = new Uri("pack://application:,,,/Resources/default1.mp3"); // This is not working neither showing and erro

我想从
resources
获取
default.mp3
的URI,并在
System.Windows.Media.MediaPlayer

我将mp3文件作为
Content
copy always
包含在参考资料文件夹中,但我不知道如何播放以获取URI。我目前正在这样做,但它不工作

 uri = new Uri("pack://application:,,,/Resources/default1.mp3");   // This is not working neither showing and error
 var player = new MediaPlayer();
 //MessageBox.Show(uri.ToString());
 player.Open(uri);
 player.Play();

您必须将“构建操作”设置为“资源”,以便通过WPF访问资源

您可以在文件的“属性”窗格中更改此设置:

我通过以下步骤实现了:

  • Resources\default.mp3
    中创建资源文件
  • 将资源文件添加到项目中。将构建操作设置为资源
  • 使用此代码:

    Uri uri = new Uri("pack://application:,,,/WpfApplication1;component/Resources/default.mp3");
    

  • 无法将资源中的文件应用于.Net中的MediaPlayer。音乐文件应放在单独的文件和用物理文件路径创建的Uri中


    请参阅MediaPlayer.MediaError事件中的消息详细信息。

    已尝试,但运气不佳,仍然没有收到任何错误,也没有播放mp3文件尝试重建项目。通常,这些更改不会以其他方式进行。仍然不起作用:(在windows窗体中,我曾经使用此
    Properties.Resources.FileName
    作为URI尝试此文件:
    pack://application:,,/The.Full.Assembly.Name;component/Resources/file.mp3
    。不工作时,我的程序集名称中有空格
    音频播放
    ,因此我尝试了此
    pack://application:,,,/Audio Play;组件/资源/默认值1.mp3
    但这不起作用。当我回到电脑旁时就可以了。