【问题标题】:How do I pass float array pointers to Volumemeter如何将浮点数组指针传递给 Volumemeter
【发布时间】:2014-12-11 22:55:53
【问题描述】:

我正在尝试在 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 有两个非公共属性 根据 API (http://sharpdx.org/documentation/api/t-sharpdx-xaudio2-fx-volumemeterlevels),PeakLevelPointer 和 RmsLevelsPointer 必须由应用程序分配。 VolumeMeter 然后将填充指针指向的浮点数组以使仪表工作。问题是:如何传递这两个非公共指针?

【问题讨论】:

  • 将您的代码添加到您的问题中?

标签: c# sharpdx xaudio2


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2013-02-15
    相关资源
    最近更新 更多