【问题标题】:C# Mediaplayer doesn't play mp3 file from resourcesC# Mediaplayer 不从资源中播放 mp3 文件
【发布时间】:2017-06-05 12:50:54
【问题描述】:

Mediaplayer 不适合我,所以我转向了一个简单的测试项目(C# 控制台应用程序)。我像这样将我的 .mp3 文件添加到项目中:

  1. 在解决方案资源管理器中右键单击项目名称(测试)
  2. 添加文件夹资源
  3. 右键单击解决方案资源管理器中的资源文件夹
  4. 添加我的 warn.mp3 文件
  5. 左键点击warn.mp3文件
  6. 在属性窗口中将构建操作更改为资源。

很遗憾,这段代码不起作用:

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();
        }
    }
}

知道哪里出了问题吗?

【问题讨论】:

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


【解决方案1】:

您不能使用来自内部 exe/dll 资源的MediaPlayer。您应该选择另一个播放器组件或将其写入磁盘。如果您可以选择其他玩家,看起来System.Media.SoundPlayer可以解决问题。搜索堆栈溢出Play wav/mp3 from memory 应该会给出一些结果

【讨论】:

    【解决方案2】:

    这个呢:

    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();
            }
        }
    }
    

    【讨论】:

    • 那没有帮助。我不想从程序中包含声音文件,我希望它被“打包”,就像我以同样的方式添加图片文件一样,我可以在图像控件中显示它,而无需将文件保存在计算机上(在 f.e. 另一台机器上编译后)
    • 然后将其添加到您的项目中。右键单击添加文件并添加它。它将被复制到您的 bin 文件夹中。
    • 如果我没看错,“打包”意味着嵌入式资源。 AFAIK MediaPlayer 不允许这样做。
    • 正如我所说,我确实做到了:将它添加到我的项目中。 @bradbury9 谢谢解释。有没有办法在 C# 中播放作为嵌入式资源的 .mp3 文件?
    • @Krepsy3 您可以使用 NAudio API 来完成。见github.com/naudio/NAudio
    猜你喜欢
    • 2011-06-25
    • 2013-08-20
    • 2013-03-24
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多