如何使用FileOpenPicker
或NAudio
从SharpDX
加载音频文件,并添加Audio FX
,如Flanger,Phaser,Echo,Gate,Bit Crusher。
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.FileTypeFilter.Add(".mp3");
openPicker.FileTypeFilter.Add(".wav");
openPicker.FileTypeFilter.Add(".m4a");
openPicker.FileTypeFilter.Add(".wma");
openPicker.FileTypeFilter.Add(".aac");
StorageFile file = await openPicker.PickSingleFileAsync();
答案 0 :(得分:1)
这是我对音频文件的FX音效的解决方案。
在我们开始之前,您需要以下包,使用NuGet-Package轻松获得:
C#
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.FileTypeFilter.Add(".mp3");
openPicker.FileTypeFilter.Add(".wav");
openPicker.FileTypeFilter.Add(".m4a");
openPicker.FileTypeFilter.Add(".wma");
openPicker.FileTypeFilter.Add(".aac");
StorageFile audioFile = await openPicker.PickSingleFileAsync();
MediaManager.Startup();
XAudio2 xaudio2 = new XAudio2();
xaudio2.StartEngine();
MasteringVoice masteringVoice = new MasteringVoice(xaudio2);
AudioPlayer audioPlayer = new AudioPlayer(xaudio2, await audioFile.OpenReadAsync());
AudioPlayer类来自Alexandre Mutel https://github.com/sharpdx/SharpDX-Samples/tree/master/Desktop/XAudio2/AudioPlayerApp 。 在AudioPlayer类中,您可以从以下位置更改构造函数:
public AudioPlayer(XAudio2 xaudio2, Stream audioStream)
要:
public AudioPlayer(XAudio2 xaudio2, IRandomAccessStreamWithContentType audioStream)
现在,您可以使用audioPlayer.Play();
audioPlayer.Stop();
您可以添加效果:
SourceVoice sourceVoice = audioPlayer.SourceVoice;
Reverb reverb = new SharpDX.XAPO.Fx.Reverb();
EffectDescriptor effectDescriptor = new EffectDescriptor(reverb);
sourceVoice.SetEffectChain(effectDescriptor);
sourceVoice.EnableEffect(0);