在C#程序中,我想允许用户指定要在特定事件上播放的声音文件(wav或mp3)。
使用WAV文件我可以使用SoundPlayer
,但不幸的是它无法播放任何其他内容(例如MP3)。
现在我正在寻找一种播放声音文件的方法 - wav或mp3 - 而不添加任何依赖项。
嵌入WMP会起作用,但有些人会卸载,在这种情况下它会失败。另外我想我必须添加一个额外的DLL文件 - 我真的想把我的应用程序保存为单个exe文件而不需要任何额外的东西。
答案 0 :(得分:2)
如果主驱动程序有一个exe文件,那么你可以考虑使用像ILMerge这样的工具将相关文件重新打包到你的可执行文件中(以及一个更好的用户界面:NuGenUnify)。这将允许您使用可以嵌入到exe中的帮助程序库。
答案 1 :(得分:1)
.NET没有内置的MP3解码器/播放器。您可以使用DirectShow,DirectSound(DirectX的一部分)或MCI(媒体控制接口)与MCI being the simplest播放MP3。
但是,还应该注意的是,包装依赖性(假设你想要使用特定的MP3编解码器以获得许可)并不一定需要单独的文件。您可能必须聪明地将它们打包到.exe。
例如,依赖关系可以作为可执行文件中的嵌入式资源提供,并从ManifestResouceStream加载。