c#在windows phone 8.1中混合两个音频文件silverlight project
我的目标是混合两个音频文件,即一个音频和一个背景音乐。为了混音,我使用NAudio。 问题是我使用NAudio的Mp3FileReader
读取mp3文件时出现以下异常。c#在windows phone 8.1中混合两个音频文件silverlight project
DllImport cannot be used on user-defined methods
我在Windows Phone 8.1 Silverlight应用程序项目中使用NAudio。我不确定NAudio是否可用于WP Silverlight应用程序,如果它可用,请通过提供代码示例或建议任何其他库或定制实现来混合2个音频文件来提供帮助。
不,我担心NAudio在Silverlight上不可用,因为它会在Windows API中调用很多无法在Silverlight中执行的调用。您可以看看NAudio NLayer项目,该项目提供完全管理的MP3解码。您可以将它与NAudio中的一些更通用的帮助类(如MixingSampleProvider
)一起使用,以执行您所需的混音。当然下一个问题就是你想用混合音频来做什么。 Silverlight确实可以使用MediaElement
来传输用户生成的音频,但NAudio不直接提供对此的支持。
[DllImport]在CLR中需要大量的代码,对于pinvoke编组器来说没有什么非常微妙的。这是手机的问题,它运行一个名为.NETCore的特殊版本的CLR。今天可能更为人熟知的是剥离CoreCLR开源项目的代码库。保持小型化需要不加选择,拼凑在地板上。
所以不,你没有用NAudio。你将不得不深入内置的音频支持。 MSDN相关的监督页面是this one。这blog post是相关的。
正如您所看到的,XAudio2是您直接支持混音的票据。当然有一个学习曲线,这个语言可能是给出问题标签的第一个障碍。开始使用this sample以获得基本知识。
也许你应该考虑采取步骤,以WP8.1的Silverlight(WPS)项目WP8.1(WinRT的)一个让你有音频API的更好的访问升级...
...或直接发送到UWP/Win10应用程序(如果您不打算立即发布到手机)。如果你选择这个路径,你可以尝试一个免费的预览工具,将WPS转换为UWP,刚刚从微软和Mobilize.NET发布 - https://blogs.windows.com/buildingapps/2015/09/17/initial-preview-of-silverlight-bridge-to-uwp/
你看过SharpDX.XAudio2吗?我认为他们有一些音频工具,但我不确定他们是否支持Silverlight。 –