如何在不添加任何依赖项的情况下从C#程序播放mp3文件?

时间:2011-05-27 19:19:53

标签: c# audio mp3

在C#程序中,我想允许用户指定要在特定事件上播放的声音文件(wav或mp3)。

使用WAV文件我可以使用SoundPlayer,但不幸的是它无法播放任何其他内容(例如MP3)。

现在我正在寻找一种播放声音文件的方法 - wav或mp3 - 而不添加任何依赖项。

嵌入WMP会起作用,但有些人会卸载,在这种情况下它会失败。另外我想我必须添加一个额外的DLL文件 - 我真的想把我的应用程序保存为单个exe文件而不需要任何额外的东西。

2 个答案:

答案 0 :(得分:2)

如果主驱动程序有一个exe文件,那么你可以考虑使用像ILMerge这样的工具将相关文件重新打包到你的可执行文件中(以及一个更好的用户界面:NuGenUnify)。这将允许您使用可以嵌入到exe中的帮助程序库。

答案 1 :(得分:1)

.NET没有内置的MP3解码器/播放器。您可以使用DirectShow,DirectSound(DirectX的一部分)或MCI(媒体控制接口)与MCI being the simplest播放MP3。

但是,还应该注意的是,包装依赖性(假设你想要使用特定的MP3编解码器以获得许可)并不一定需要单独的文件。您可能必须聪明地将它们打包到.exe。

例如,依赖关系可以作为可执行文件中的嵌入式资源提供,并从ManifestResouceStream加载。