我的代码中生成了一个AudioTrack。我从here检索了代码。

我需要做的是获取所生成音调的频段。因此,为了做到这一点,我初始化了一个Equalizer,并将音频 session 设置为生成的音轨的 session ID。

audioTrackSessionId = audioTrack.getAudioSessionId();
equalizer = new Equalizer(1, audioTrackSessionId);
equalizer.setEnabled(true);

我需要的是检索给定频率的频段水平,假设为freqOfTone = 1000; //Hz,所以我需要获取频段2的水平(频段2的范围是461Hz至1800Hz)。

如果我使用equalizer.getBandLevel(2),则默认情况下会返回均衡器的电平,而不是生成的音调(audioTrack)的电平。

有人知道如何检索所生成音调的频段吗?

最佳答案

像这样的getBandLevel

short minEQLevel = equalizerWrapper.getBandLevelRange()[0];

short maxEQLevel = equalizerWrapper.getBandLevelRange()[1];

07-24 21:52