如何将浮点数组指针传递给体积计

本文关键字:体积计 指针 数组 | 更新日期: 2023-09-27 18:33:59

我正在尝试在Xaudio2中使用SharpDX VolumeMeter。我想使用 SetEffectParameters 来传递 VolumeMeterLevels 对象,但该对象只有一个公共 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有两个非公共属性PeakLevelPointer 和 RmsLevelsPointer 根据 API (http://sharpdx.org/documentation/api/t-sharpdx-xaudio2-fx-volumemeterlevels) 必须由应用程序分配。然后,体积计将填充指针指向的浮点数组,以使计量器工作。问题是:我怎样才能通过这两个非公开指针?

如何将浮点数组指针传递给体积计

已联系 SharpDX 的支持人员。他们目前还没有实施VolumeMeter。