2015-09-27 76 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以獲得基本知識。