我正在开发一个c#wpf应用程序,我想用音频做一些事情。 irrklang音频库为我提供了一个pcm解码的16位字节数组。
我想创建一个时间轴控件,它显示时间轴上的波形,带有一个用户可以拖动的重叠矩形,然后单击/拖动左右两侧以增加或减少选择。
用于修剪音轨。我希望选择的最小值和最大值是databindable,总轨道的最小值和最大值是可绑定的。
这里要澄清一个图像样机:
我不是要求完全控制,但是如何解决这个问题的建议和建议非常受欢迎。也许这样的解决方案已经存在,但到目前为止我还没有找到它。
我想我需要解决:控制(缩放,平移和更改选择)以及在控件中绘制波形
提前致谢,
答案 0 :(得分:2)
我认为你应该查看这个codeplex项目 http://wpfsvl.codeplex.com/
答案 1 :(得分:1)
请参阅Audio WaveForm Drawing Using WPF。
基于WaveFileTrimmerControl.xaml的内容会很有用,它会使用相关控件PolygonWaveFormControl.xaml& RangeSelectionControl.xaml(链接指向XAML,但也指CS)。在任何情况下,它都是构建完全符合您想要的控件的良好起点。
您可以覆盖渲染方法并使用可能提供更好性能的基元;但是就像任何与性能相关的东西一样,我首先尝试上面的方法,这几乎肯定是足够好的。