作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试制作一个安卓播放器,但在制作均衡器时出现了问题。均衡器频段是有限制的,例如 Nexus 5 默认有 5 频段均衡器。一些播放器(例如 Poweramp)以某种方式设法获得 10 频段均衡器,即使在默认情况下具有 5、6 或 13 频段的手机上也是如此。
我正在使用 Equalizer 类将其附加到 MediaPlayer 并且通常我了解它是如何工作的,但是如何在默认情况下只有 5 个频段的手机上制作 10 个频段?
所以我的问题是这怎么可能,有些玩家如何设法在所有手机上获得 10 频段均衡器,而不管他们的系统/硬件限制如何?
最佳答案
正如您所说,频率取决于设备上的硬件。我用我的 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
关于java - 如果默认为 5 波段,如何在 Android 播放器上制作 10 波段均衡器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33392660/
我是一名优秀的程序员,十分优秀!