C#Mediaplayer不会从资源中播放mp3文件

时间:2017-06-05 12:50:55

标签: c# resources uri mp3 windows-media-player

Mediaplayer对我不起作用,所以我转到了一个简单的测试项目(C#Console App)。我将.mp3文件添加到项目中:

  1. 右键单击解决方案资源管理器中的项目名称(测试)
  2. 添加文件夹资源
  3. 右键单击解决方案资源管理器中的资源文件夹
  4. 添加我的warn.mp3文件
  5. 左键单击warn.mp3文件
  6. 在属性窗口中将构建操作更改为资源。
  7. 可悲的是,这段代码不起作用:

    namespace test
    {
        class Program
        {
            public static void Main(string[] args)
            {
                MediaPlayer player = new MediaPlayer();
                player.Open(new Uri("resources/warn.mp3", UriKind.Relative));
                player.Play();
                Console.ReadKey();
            }
        }
    }
    

    然而,这个确实:

    namespace test
    {
        class Program
        {
            public static void Main(string[] args)
            {
                MediaPlayer player = new MediaPlayer();
                player.Open(new Uri("C:\\Users\\Krepsy3\\Documents\\Programs\\OOP\\test\\test\\resources\\warn.mp3", UriKind.Absolute));
                player.Play();
                Console.ReadKey();
            }
        }
    }
    

    对于什么是错误的任何想法?

2 个答案:

答案 0 :(得分:1)

您无法使用内部exe / dll资源中的MediaPlayer。您应该选择其他播放器组件或将其写入磁盘。如果您可以选择其他玩家,看起来像System.Media.SoundPlayer可以做到这一点。搜索堆栈溢出Play wav/mp3 from memory应该给出一些结果

答案 1 :(得分:0)

这个怎么样:

namespace test
{
    class Program
    {
        public static void Main(string[] args)
        {
            MediaPlayer player = new MediaPlayer();
            player.Open(new Uri(System.Environment.CurrentDirectory + "\resources\warn.mp3", UriKind.Relative));
            player.Play();
            Console.ReadKey();
        }
    }
}