2014-12-11 8 views
1

Xaudio2에서 SharpDX VolumeMeter를 사용하려고합니다. SetEffectParameters를 사용하여 VolumeMeterLevels 객체를 전달하려고하지만 객체에는 공개 int ChannelCount 만 있고 MSDN 섹션에 표시된 두 개의 포인터는 없습니다. API는 이들을 내부로 나열합니다.플로트 배열 포인터를 Volumemeter에 전달하는 방법

나는 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는 미터가 작동하도록 포인터가 가리키는 플로트 배열을 채 웁니다. 문제는 두 개의 비공개 포인터를 어떻게 전달할 수 있는가입니다.

+0

질문에 귀하의 코드를 추가하십시오? –

+0

코드로 업데이트 됨 – WJM

답변

0

SharpDX의 지원에 문의하십시오. 그들은 현재 VolumeMeter를 구현하지 않았습니다.