我正在尝试制作一个Android播放器并在制作均衡器时出现问题。均衡器频段存在限制,例如Nexus 5默认具有5个频段均衡器。一些播放器(例如Poweramp)设法获得10频段均衡器,即使在默认情况下具有5,6或13频段的电话上也是如此。
我正在使用Equalizer类将它附加到MediaPlayer,一般我理解它是如何工作的,但是如何在默认情况下只有5个频段的手机上制作10个频段?
所以我的问题是这怎么可能?一些玩家如何设法在所有手机上获得10频段均衡器,无论他们的系统/硬件限制如何?
答案 0 :(得分:0)
就像你说的那样,频率取决于设备上的硬件。我用我的Nexus 5进行了测试,它有5个带有这些值的波段:
您可以使用以下代码获取乐队和预设的数量:
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