2013-10-30 28 views
2

我的問題很簡單:內置的android均衡器提供的樂隊的默認數量是多少?另外,保證的最低頻段數是多少?Android Equalizer中的樂隊數量

據我研究,答案似乎是5,但它沒有很好的記錄。然而,在我的設備,這是目前可用的測試它,我得到了以下結果:

  • HTC Desire S的運行Android 2.3.5:帶
  • 索尼XPERIA TIPO運行Android 4.0.x版: 帶
  • 然而,的Nexus 4運行Android 4.3.1:帶

我得到theese號碼的方法如下:

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

因此,在某些設備上,我可能能夠獲得更多的頻段,但最小數量是5?

另外,這是一種很好的方法,我根據當前設備的多少波段動態呈現均衡器的UI部分,然後讓用戶設置自己的偏好?

在此先感謝!

回答

2

我不認爲有一個默認數量的樂隊,你不應該建立你的應用程序假設有一個默認/固定數量的樂隊。

當然,你將不得不根據設備的頻帶數量動態地渲染你的UI均衡器。

+0

這就是我很害怕,謝謝。 – hundeva

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); 
} 

現在可以在所有工作devices.Whether它樂隊小於5或大於13

注:

還要檢查是否equalizer!=null必須