我正在尝试做一个android播放器,在做均衡器时出现了一个问题。有均衡器频带的限制,例如Nexus 5默认有5频带均衡器。一些玩家(如Poweramp)设法获得了10波段均衡器,甚至在手机上有5,6或13波段,例如在默认情况下。
我使用均衡器类将其附加到MediaPlayer,通常我理解它是如何工作的,但是如何在默认情况下只有5个频段的手机上制作10个波段呢?
因此,我的问题是,这是如何可能的,有些玩家如何设法在所有手机上获得10波段均衡器,而不管他们的系统/硬件的限制?
发布于 2015-10-28 14:48:47
就像你说的,频率取决于设备上的硬件。我用我的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);在这里阅读更多关于均衡器的信息:均衡器Android开发者
https://stackoverflow.com/questions/33392660
复制相似问题