在Silverlight中创建媒体可视化

在Silverlight中创建媒体可视化,silverlight,silverlight-3.0,visualization,Silverlight,Silverlight 3.0,Visualization,我想在Silverlight中为声波创建一些自定义的可视化效果。从Silverlight 3开始,MediaElement类在播放声音/视频方面表现出色 然而,为了可视化,我需要某种类型的事件回调,以及关于当前播放的声音片段的一些信息。框架是否有一些支持来实现这一点?遗憾的是,在Silverlight中,这是不可能的,除非您自己创建自己的MediaStreamSource来解码音频(例如MP3) 你作弊能逃脱吗?很多网络播放器都展示了一个假的图形均衡器,它在播放过程中只是随机地上下移动条。我似乎

我想在Silverlight中为声波创建一些自定义的可视化效果。从Silverlight 3开始,MediaElement类在播放声音/视频方面表现出色


然而,为了可视化,我需要某种类型的事件回调,以及关于当前播放的声音片段的一些信息。框架是否有一些支持来实现这一点?

遗憾的是,在Silverlight中,这是不可能的,除非您自己创建自己的MediaStreamSource来解码音频(例如MP3)


你作弊能逃脱吗?很多网络播放器都展示了一个假的图形均衡器,它在播放过程中只是随机地上下移动条。我似乎还记得MySpace和SoundClick曾经做过这件事(可能现在还可以)。

如果您实现了自定义MediaStreamSource,您可能会检查/分析它生成的数据,但是如果您尝试直接从自定义MediaStreamSource更新UI,您会立即遇到UI线程问题,反之亦然


实现这一点的一种方法可能是实现一个自定义MediaStreamSource,将额外的音频数据写入(或复制?)线程安全缓冲区,用户界面可以在其中访问这些数据

我想要同样的,所以我创造了完全一样的。 您可以在

库和演示源代码可在 演示显示了添加的功能,可以更改原始音频数据以创建效果。 目前仅适用于MP3,仍在开发中