我看不到任何东西可以让我具体控制audiofx.Equalizer库中每个音频波段的音量。不可能吗 任何意见和建议将不胜感激。谢谢。
答案 0 :(得分:0)
setBandLevel
public void setBandLevel (short band, short level)
将给定的均衡器频段设置为给定的增益值。
您需要在Equalizer
实例上调用该方法。
答案 1 :(得分:0)
您需要调用方法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项目中使用均衡器和可视化器的完整示例。