如何将float数组指针传递给Volumemeter

时间:2014-12-11 22:55:54

标签: c# sharpdx xaudio2

我正在尝试在Xaudio2中使用SharpDX VolumeMeter。我想使用SetEffectParameters传递VolumeMeterLevels对象,但该对象只有一个public int ChannelCount,而不是MSDN部分中记录的两个指针。 API将它们列为内部。

我需要传递pPeakLevels和pRMSLevels的两个指针。我怎样才能做到这一点?

已更新代码。下面我创建一个新的VolumeMeter,MasteringVoice和VolumeMeterDescriptor。我在MasteringVoice的效果链中设置了VolumeMeter。

        Xaudio2Engine = new XAudio2();
        Xaudio2Engine.StartEngine();

        MVoice = new MasteringVoice(Xaudio2Engine, XAudio2.DefaultChannels, XAudio2.DefaultSampleRate, DIString);
        VMeter = new VolumeMeter();

        EffectDescriptor VMeterDescriptor = new EffectDescriptor(VMeter, MVoice.VoiceDetails.InputChannelCount);
        MVoice.SetEffectChain(VMeterDescriptor);

问题是VolumeMeter有两个非公共属性 根据API(http://sharpdx.org/documentation/api/t-sharpdx-xaudio2-fx-volumemeterlevels)的PeakLevelPointer和RmsLevelsPointer必须由应用程序分配。然后,VolumeMeter将填充指针指向的浮点数组,以使仪表工作。问题是:我怎样才能传递两个非公共指针?

1 个答案:

答案 0 :(得分:0)

SharpDX的联系支持。他们目前没有实现VolumeMeter。