Android 音訊均衡器,可通過拖動調節音訊EQ

2021-09-08 21:18:36 字數 2363 閱讀 9490

2.3之後,google 為mediaplayer 類新增了eq支援,如果你需要使用這個eq功能,有兩點需要注意,分別為如下:

為了使應用程式能夠支援波段變化,我們需要重新定義乙個view物件,在ondraw 方法畫頻譜,**如下:

class

visualizerview extends view 

public

visualizerview(context context) 

public

void

updatevisualizer(

byte

mbyte) 

@override

protected

void

ondraw(canvas canvas) 

if(mpoints 

==null

||mpoints.length 

<

mbytes.length *4

) mrect.

set(0, 

0, getwidth(), getheight());

for(

inti =0

; i 

<

mbytes.length -1

; i++

) canvas.drawlines(mpoints, mpaint);}}

另外,為了使用eq和頻譜視覺化,我們必須了解以下兩個類:

具體使用**和注釋見下面:/**

* 通過mmediaplayer返回的audiosessionid建立乙個優先順序為0均衡器物件 並且通過頻譜生成相應的ui和對應的事件

*/private

void

setupequalizefxandui() 

@override

public

void

onstarttrackingtouch(seekbar seekbar) 

@override

public

void

onprogresschanged(seekbar seekbar, 

intprogress,

boolean fromuser) 

});row.addview(mindbtextview);

row.addview(seekbar);

row.addview(maxdbtextview);

mlayout.addview(row);}}

/*** 生成乙個visualizerview物件,使音訊頻譜的波段能夠反映到 visualizerview上

*/private

void

setupvisualizerfxandui() 

@override

public

void

onfftdatacapture(visualizer visualizer, 

byte

fft,

intsamplingrate) 

}, visualizer.getmaxcapturerate() /2

, true

, false);}

進入程式後,在程式入口載入如下**:

mstatustextview 

=new

textview(

this

);mlayout 

=new

linearlayout(

this

);mlayout.setorientation(linearlayout.vertical);

mlayout.addview(mstatustextview);

setcontentview(mlayout);

mmediaplayer 

=mediaplayer.create(

this

, r.raw.eason);

setupvisualizerfxandui();

setupequalizefxandui();

mvisualizer.setenabled(

true

);mmediaplayer.setoncompletionlistener(

newoncompletionlistener() 

});mmediaplayer.start();

mstatustextview.settext(""

); 完整執行效果:

試試改變一下拖動條,聽一下音訊有什麼變化。

音訊頻譜操作

注:原始碼內沒有包含音訊檔案,測試的話自行新增乙個***檔案即可。

Android自帶音訊均衡器MusicFx分析

種種原因,我要簡單分析乙個android 中built in 的音訊均衡器 musicfx 重點是它的預設值的來歷。網上很少有文章講了這個的除了這篇 com.android.musicfx設定音效流程 從 到audioflinger 注 android 系統版本為 4.2.2 r1。到audiofl...

音訊EQ 均衡器

我們通常所說的人聲,歌聲以及樂聲都是乙個復合音,也就是由聲音的基音和一系列的泛音所構成的。這些泛音都是基音頻率的倍數,物理學中叫分音,電聲學中叫諧波,中則把它們稱做泛音。可以說,泛音對音色的特性有著非常重要的影響。它們的數量以及幅度的不同構成音色的頻率特性曲線。這條曲線就體現了音色的表現力。一般來說...

負載均衡器

負載均衡器f5 負載均衡是高可用網路基礎架構的關鍵元件,通常用於將工作負載分布到多個伺服器來提高 應用 資料庫或其他服務的效能和可靠性。負載均衡器可以處理什麼樣的請求?負載均衡器的管理員能主要為下面四種主要型別的請求設定 規則 負載均衡器如何選擇要 的後端伺服器?負載均衡器一般根據兩個因素來決定要將...