Android均衡器中的波段数

时间:2013-10-30 12:46:48

标签: android android-mediaplayer

我的问题很简单:内置android均衡器提供的默认频段数是多少?另外,保证最小频段数是多少?

就我的研究而言,答案似乎是5,但它没有很好的记录。但是,在我目前可用的设备上测试它,我得到了以下结果:

  • HTC Desire S运行android 2.3.5: 5 band
  • Sony Xperia Tipo运行android 4.0.x: 5 频段
  • 但是,运行Android 4.3.1的Nexus 4: 6 频段

我获得这些数字的方式如下:

MediaPlayer mp=new MediaPlayer(this);
/* some initialization */
Equalizer eq=new Equalizer(0, mp.getAudioSessionId());
short bands=eq.getNumberOfBands();

所以,在某些设备上,我可能会获得更多频段,但最小数字是5?

另外,这是一种很好的方法,我动态地渲染均衡器的UI部分,具体取决于当前设备有多少波段,然后让用户设置自己的首选项?

提前致谢!

3 个答案:

答案 0 :(得分:2)

我认为没有默认的乐队数量,假设有一个默认/固定数量的乐队,你不应该建立你的应用程序。

当然,您必须根据设备的频段数动态渲染UI均衡器。

答案 1 :(得分:2)

  

我无法分辨设备的频段数量。它取决于硬件。三星Galaxy有13个均衡器频段,有些设备比它更大。

您可以简单地以编程方式创建任意数量的波段。

Equalizer eq=new Equalizer(0, mp.getAudioSessionId());
short bands=eq.getNumberOfBands();
LinearLayout parentViewToAllEqualizerSeekBars = findViewById...
for(int i=0;i<(int)bands.length;i++)
{
//create seekbar programmatically and set it min max and add to the view
Seekbar seek = new SeekBar(this);
seek.min(equalizerMinLevel....)
seek.max(equalizerMaxLevel..)
parentViewToAllEqualizerSeekBars .addView(seek);
}

现在它适用于所有设备。它是否具有小于5或大于13的波段。

注意:

同时检查equalizer!=null是否必须

答案 2 :(得分:0)

由于声誉低,我必须告诉你

最大波段数是8,我创建了8个搜索栏,只有显示搜索栏== numberOfBands

How to implement Equalizer in android