如果默认为 5 波段,如何在 Android 播放器上制作 10 波段均衡器?

How to make 10 band equalizer on Android player if default is 5 band?

我正在尝试制作一个 android 播放器,但制作均衡器时出现问题。均衡器频段是有限制的,例如 Nexus 5 默认有 5 频段均衡器。一些播放器(例如 Poweramp)以某种方式设法获得 10 频段均衡器,即使在默认情况下具有 5、6 或 13 频段的 phones 上也是如此。

我正在使用均衡器 class 将其附加到 MediaPlayer,通常我了解它是如何工作的,但是如何在 phone 上制作 10 个频段,而默认情况下只有 5 个频段?

所以我的问题是这怎么可能,有些玩家如何设法在所有 phone 上获得 10 频段均衡器,而不考虑他们的 system/hardware 限制?

就像你说的频率取决于设备上的硬件。我用我的 Nexus 5 进行了测试,它有 5 个带这些值的波段:

  • 波段 1:30k-120k
  • 频段 2:120k-460k
  • 波段 3:460k-1.800k
  • 频段 4:1.800-7.000k
  • 频段 5:7.800k-1

您可以使用此代码获取频段和预设的数量:

short numberOfBands = equalizer.getNumberOfBands();
short numberOfPresets = equalizer.getNumberOfPresets();

您可以使用此代码获得的频段频率范围:

final short minLevel = equalizer.getBandLevelRange()[0]; // get min range
final short maxLevel = equalizer.getBandLevelRange()[1]; // get max range

要显示弯曲,您可以这样做:

for(short i = 0; i < numberOfBands; i++){
     SeekBar seekBar = ...
     mTextViewMin.setText(minLevel + "");
     mTextViewMax.setText(maxLevel + "");   
}

初始化均衡器:

Equalizer equalizer = new Equalizer(0, mediaplayer.getAudioSessionId());
equalizer.setEnabled(true);

在此处阅读有关均衡器的更多信息: Equalizer Android Developer