如何使用均衡器更改每个音频波段的音量?

时间:2018-08-02 02:00:45

标签: android audio

我看不到任何东西可以让我具体控制audiofx.Equalizer库中每个音频波段的音量。不可能吗 任何意见和建议将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

根据documentation

  

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项目中使用均衡器和可视化器的完整示例。