我看不到有什么可以让我具体控制audiofx.Equalizer库中每个音频波段的音量。不可能吗
任何意见和建议将不胜感激。谢谢。
最佳答案
您需要调用setBandLevel方法:
public void setBandLevel(short band, short level)
在
Equalizer
对象的实例上。由于不同的Android设备具有不同数量的可用频段(具有不同的属性(增益,带宽,中心频率...)),因此,您还需要知道可用的最大频段数量和增益范围(至少)。
// New instance of equalizer (add it as a member of your class rather than a scoped instance like this)
Equalizer mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
// Get the number of bands available on your device
short bands = mEqualizer.getNumberOfBands();
// Get the gain level available for the bands
final short minEQLevel = mEqualizer.getBandLevelRange()[0];
final short maxEQLevel = mEqualizer.getBandLevelRange()[1];
然后,您可以通过将EQ级别划分为百分比来调用
setBandLevel
方法。有关更多信息,请查阅Equalizer一般文档-有更多方法可获取特定信息,例如参数EQ的中心频率和频带宽度。
Here是一个在Android项目中使用均衡器和可视化器的完整示例。