音訊解碼為PCM

2021-08-24 23:45:30 字數 1271 閱讀 1311

/**

** author : ych

* email : [email protected]

* time : 2018/08/18

* desc : 解碼器 -》pcm

* version:

*

*/

public class audiodecoder2pcm }}

return instance;

}public void setdata(byte bytes)

public byte getdata()

public void startdecoder(string path)

//判斷當前檔案型別是否是音訊

string mime=format.getstring(mediaformat.key_mime);

if (mime.startswith("audio/"))

//建立mediocodec物件

mdecoder = mediacodec.createdecoderbytype(mime);

//配置mediacodec

mdecoder.configure(format,null,null,0);

if (mdecoder==null)

//啟動mediocodec等待傳入資料

mdecoder.start();

//啟動執行緒

new thread(decoderandplayrunnable).start();

} catch (ioexception e)

}runnable decoderandplayrunnable = new runnable()

};private void decoderandplay() else

//從mediadecoder佇列取出一幀解碼後的資料 引數bufferinfo上面已介紹 10000同樣為等待時間 同上-1代表一直等待,0代表不等待。此處單位為微秒

//此處建議不要填-1 有些時候並沒有資料輸出,那麼他就會一直卡在這 等待

int outindex = mdecoder.dequeueoutputbuffer(info, 0);

switch (outindex)}}

mdecoder.stop();

mdecoder.release();

mdecoder=null;

mextractor.release();

mextractor=null;}}

音訊PCM知識整理

pcm pulse code modulation 脈衝編碼調製。人耳聽到的是模擬訊號,pcm是把聲音從模擬訊號轉化為數碼訊號的技術。原理是用乙個固定的頻率對模擬訊號進行取樣,取樣後的訊號在波形上看就像一串連續的幅值不一的脈衝 脈搏似的短暫起伏的電衝擊 把這些脈衝的幅值按一定精度進行量化,這些量化後...

PCM音訊和音量調節

聲音的本質是一種能量波,由振動而產生的能量波,通過傳輸介質傳輸出去。聲音有三個屬性 波長是決定音調高低 振幅是決定音量高低 波紋是決定音色。pcm pulse code modulation,脈衝編碼調製 音訊資料是未經壓縮的音訊取樣資料裸流,它是由模擬訊號經過取樣 量化 編碼轉換成的標準數字音訊資...

通過pcm音訊資料計算分貝

引數 pref 就是聲音總的振幅最大值 prms 就是當前聲音的振幅值 lp 就是我們需要的聲音分貝值了。比如 我們聲音是無符號16bit深度的,那麼其每個取樣點的值應該在 0 2 16 1既 0 65535 範圍內,帶入公式我們可以計算到 不用除以最大振幅值 20 log 65535 96.32d...