Как передать указатели массива с плавающей точкой в 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.