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

Posted

技术标签:

【中文标题】Silverlight 中 Wave 文件的声音可视化工具【英文标题】:Sound Visualizer for Wave Files in Silverlight 【发布时间】:2012-01-11 06:27:03 【问题描述】:

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

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

我四处搜索,到目前为止,最终得到了 Salus MediaKit(仅适用于 MP3)、节拍检测(涉及复杂的算法)和 WaveControl,它不会实时显示。

能否有更精通音频处理的人指出我可以采取的方法?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Silverlight 中 Wave 文件的声音可视化工具的主要内容,如果未能解决你的问题,请参考以下文章

使用项目中的wave文件

转wave 文件解析

C++ 一次播放多个 WAVE 资源文件

我如何在 Silverlight 动画中添加声音?

融云 Web 播放声音(AMR WAVE)

如何在 Silverlight 4 中可视化麦克风声音/压力级别?