3

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

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

  • 运行 android 2.3.5 的 HTC Desire S:5 个频段
  • 运行 android 4.0.x 的 Sony Xperia Tipo: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 部分,然后让用户设置自己的偏好,这是一个好方法吗?

提前致谢!

4

3 回答 3

4

我不知道设备的频段数。它取决于硬件。三星 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必须

于 2015-05-27T09:00:46.987 回答
3

我不认为有默认数量的频段,并且您不应该假设有默认/固定数量的频段来构建您的应用程序。

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

于 2013-10-30T12:54:05.683 回答
0

因为名声低我不得不在这里告诉你

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

如何在android中实现均衡器

于 2014-12-23T11:42:14.617 回答