我想创建一个播放音乐文件的小应用程序(格式并不重要)。困难的部分是:同时我想显示低频(低音)、中频和高频的当前幅度。
所以我需要一些简单的频谱分析和回放功能。是否有一个 C# 音频库可以轻松做到这一点?
这个项目的目的是驱动我最近安装在我房间里的 RGB-LED 照明系统;-)
NAudio:http ://naudio.codeplex.com/ (开源)
Bass和 Bass.Net:http://www.un4seen.com/ (非商业免费)
Fmod Ex:http ://www.fmod.org/index.html (也可免费用于非商业用途)
使用 Bass 做你需要的事情非常容易:
string filepath ="";
Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero, null);
int handle = Bass.BASS_StreamCreateFile(filepath, 0, 0, BASSFlag.BASS_SAMPLE_FLOAT);
Bass.BASS_ChannelPlay(handle,false);
然后得到频谱:
float[] buffer = new float[256];
Bass.BASS_ChannelGetData(handle, buffer, (int)BASSData.BASS_DATA_FFT256);
从那里您可以轻松地平均特定频率的频段