Как передать указатели массива с плавающей точкой в ​​Volumemeter

Я пытаюсь использовать SharpDX VolumeMeter в Xaudio2. Я хочу использовать SetEffectParameters для передачи объекта VolumeMeterLevels, но у объекта есть только открытый int ChannelCount, а не два указателя, которые отмечены в разделе MSDN. API перечисляет их как внутренние.

Мне нужно передать два указателя для pPeakLevels и pRMSLevels. Как я могу это сделать?

Обновлено с кодом. Ниже я создаю новый VolumeMeter, MasteringVoice и VolumeMeterDescriptor. Я установил VolumeMeter в цепочке эффектов MasteringVoice.

        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) должны быть назначены приложением. Затем VolumeMeter заполнит массивы с плавающей точкой, на которые указывают указатели, чтобы счетчик работал. Вопрос в том, как я могу передать два непубличных указателя?

1 ответ

Решение

Обратился в службу поддержки у SharpDX. В настоящее время они не реализовали VolumeMeter.

Другие вопросы по тегам