.net – 为WPF MediaPlayer使用DLL资源

发布时间:2020-02-08 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了.net – 为WPF MediaPlayer使用DLL资源脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的项目中,我有一个DLL用于一些需要播放一些音频文件的WPF / XAML控件.现在,使用 SoundPlayer我可以制作DLL的这些音频文件“Embedded Resources”(也包含WPF控件).但是,SoundPlayer有一些严重的限制,所以我切换到 MediaPlayer.

不幸的是,MediaPlayer帮助页面指出MediaPlayer无法使用资源. (我尝试使用Pack URIs,但这不起作用 – 至少没有我尝试过的组合.)所以,现在,我正在将DLL资源(音频文件)写入临时文件,然后将它们与MediaPlayer一起使用,但那是恕我直言,不是一个“好”的解决方案.

所以,我想知道WPF中是否有一种“正确”的方式,MediaPlayer将音频文件放在DLL项目中.

帮助页面指出(音频)文件应标记为“内容”并使用“复制到输出目录”,但显然这仅适用于属于EXE项目的文件.它不适用于DLL项目.

解决方法

正如您所发现的,MediaPlayer不支持从资源加载媒体.

最简单的选择是将声音文件与您的应用程序一起分发并将它们放在应用程序文件夹中 – Content /“Copy to Output Directory”就是这样做的.

如果你达到Visual Studio构建系统的限制,你可以自己复制文件(将它们拖放到exe项目的bin / Debug或bin / Release folser中)或者编写一个批处理文件来复制它们并将其用作构建后的行动.

显然,当您将应用程序发送给最终用户时,您必须确保正确复制文件.

如果您正在编写DLL以供其他开发人员使用,并且您不希望手动文件复制成为开发人员安装过程的一部分,则可以始终使用指向文件位置的注册表项(由DLL安装程序设置) – 如果缺少注册表项,则回退到EXE文件夹(因此EXE开发人员仍然必须使用EXE捆绑文件,但在开发过程中不需要乱用任何内容).

当然,如果您必须将DLL作为一个文件独立包,那么您只能使用已经使用的“extract to temp folder”选项.

总结

以上是脚本之家为你收集整理的.net – 为WPF MediaPlayer使用DLL资源全部内容,希望文章能够帮你解决.net – 为WPF MediaPlayer使用DLL资源所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签: