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

时间:2015-10-28 13:41:59

标签: java android media-player audio-player equalizer android-music-player

我正在尝试制作一个Android播放器并在制作均衡器时出现问题。均衡器频段存在限制,例如Nexus 5默认具有5个频段均衡器。一些播放器(例如Poweramp)设法获得10频段均衡器,即使在默认情况下具有5,6或13频段的电话上也是如此。

我正在使用Equalizer类将它附加到MediaPlayer,一般我理解它是如何工作的,但是如何在默认情况下只有5个频段的手机上制作10个频段?

所以我的问题是这怎么可能?一些玩家如何设法在所有手机上获得10频段均衡器,无论他们的系统/硬件限制如何?

1 个答案:

答案 0 :(得分:0)

就像你说的那样,频率取决于设备上的硬件。我用我的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