我的代码中生成了一个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];