Silverlight中Wave文件的声音可视化工具

时间:2012-01-11 06:27:04

标签: c# silverlight windows-phone-7 audio

我的程序当前使用wp7中的MediaElement播放.wav文件。

我想为它编写一个非常简单的可视化器(例如,一个表示波的振幅的数字)。但是我不知道如何从MediaElement获取原始媒体信息。

我已经四处寻找,到目前为止已经完成了Salus MediaKit(仅适用于MP3),节拍检测(涉及复杂算法)和WaveControl,它不能实时显示。

能够更精通音频处理的人能指出我能采取的方法吗?

1 个答案:

答案 0 :(得分:2)

不要认为您可以从媒体元素获取原始音频数据。需要提前访问音频文件进行计算,然后使用MediaStreamSource类的GetSampleAsync将音频样本发送到MediaElement。可以在MSDN上找到文档here

认为您仍然可以使用Saluse Media Kit作为参考,因为它首先将mp3文件解码为原始音频数据,然后对其进行操作。可以查看RawMP3MediaStreamSource类来引用它。 WAV文件是未压缩的,因此您应该能够在删除任何标头信息后从中计算出振幅。值得一读的是如何存储uncompressed audio (PCM)