2015-09-27 75 views
3

我的目标是混合两个音频文件,即一个音频和一个背景音乐。为了混音,我使用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个音频文件来提供帮助。

+0

你看过SharpDX.XAudio2吗?我认为他们有一些音频工具,但我不确定他们是否支持Silverlight。 –

回答

4

不,我担心NAudio在Silverlight上不可用,因为它会在Windows API中调用很多无法在Silverlight中执行的调用。您可以看看NAudio NLayer项目,该项目提供完全管理的MP3解码。您可以将它与NAudio中的一些更通用的帮助类(如MixingSampleProvider)一起使用,以执行您所需的混音。当然下一个问题就是你想用混合音频来做什么。 Silverlight确实可以使用MediaElement来传输用户生成的音频,但NAudio不直接提供对此的支持。

3

[DllImport]在CLR中需要大量的代码,对于pinvoke编组器来说没有什么非常微妙的。这是手机的问题,它运行一个名为.NETCore的特殊版本的CLR。今天可能更为人熟知的是剥离CoreCLR开源项目的代码库。保持小型化需要不加选择,拼凑在地板上。

所以不,你没有用NAudio。你将不得不深入内置的音频支持。 MSDN相关的监督页面是this one。这blog post是相关的。

正如您所看到的,XAudio2是您直接支持混音的票据。当然有一个学习曲线,这个语言可能是给出问题标签的第一个障碍。开始使用this sample以获得基本知识。