1

感谢您的阅读,我有以下代码来读取 m4a 音频文件,我对下一步是什么有点迷茫。我知道我需要实现 SampleGrabber 来获取样本。理想情况下,我希望能够获得峰值和当前音频频率,就像单击屏幕顶部的箭头时简单的 iTunes 可视化器所做的那样。不过现在,我主要担心将 sampleGrabber 添加到我的图表中,并调用 SampleCB。这是我的图形构造:

public class Player
{
    private IGraphBuilder graphbuilder;
    private IMediaControl imc;
    private IMediaEventEx imex;
    private IMediaPosition imp;
    private IBasicAudio iba;
    private ISampleGrabber isg;

    public Player(string file)
    {
        graphbuilder = (IGraphBuilder)new FilterGraph();
        graphbuilder.RenderFile(location, null);

        imc = (IMediaControl)graphbuilder;
        imex = (IMediaEventEx)graphbuilder;
        imp = (IMediaPosition)graphbuilder;
        iba = (IBasicAudio)graphbuilder;
    }
}        

我在类中还有其他用于播放、音量等的方法。并且扩展了所有属性以使它们具有动画效果,WPF 风格,呵呵。现在我只是不知道在 GraphBuilder 中的何处添加 SampleGrabber,以及如何使其转到 SampleCB 方法。另外,我是否必须让整个类从 ISampleGrabberCB 继承?我已经尝试了这些不同的组合,但无法使任何工作......

4

0 回答 0