2011-09-03 42 views
2

我有一個Windows Phone Silverlight應用程序。我這樣做是爲了減慢話筒音量,改變話筒流的音高:如何將DynamicSoundEffectInstance或SoundEffectInstance保存到文件或數組?

sound = new SoundEffect(bStream, microphone.SampleRate, AudioChannels.Mono); 
SoundEffectInstance soundInstance = sound.CreateInstance(); 
soundInstance.Pitch -= 1; 
soundInstance.Play(); 

這裏「bStream」是一個字節數組。問題是我無法用改變的音高保存數據(雖然我可以播放它)。音高改變後有沒有辦法保存我的字節數組?我嘗試使用DynamicSoundEffectInstance以及相同的結果。當我將bStream保存爲wav文件時,所有效果都消失了。

感謝您的幫助和見解。

回答

0

您是否真的需要在音高調整後保存它?爲什麼不在文件加載後保存文件調整量並重新應用它(就像你已經在做的那樣)?

如果你真的需要調整數據的音調,你基本上會重新採樣它。這涉及內插和/或平均值以及時拉伸或壓縮它們。我相信NAudio包含這樣做的C#代碼:http://naudio.codeplex.com/

相關問題