android AudioRecorder簡(jiǎn)單心得分享
Android各種設(shè)備的采樣頻率不同,輸入的聲道數(shù)也不同,如果采用固定的采樣頻率和聲道數(shù),那么得到的AudioRecorder不一定能夠正常初始化。
為了正常使用,需要嘗試各種不同的參數(shù),得到在此設(shè)備上可以用的AudioRecorder實(shí)例。代碼如下:
private void createAudioRecord() {
for (int sampleRate : new int[]{44100, 8000, 11025, 16000, 22050, 32000,
47250, 48000}) {
for (short audioFormat : new short[]{
AudioFormat.ENCODING_PCM_16BIT,
AudioFormat.ENCODING_PCM_8BIT}) {
for (short channelConfig : new short[]{
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.CHANNEL_IN_STEREO}) {
// Try to initialize
try {
recBufSize = AudioRecord.getMinBufferSize(sampleRate,
channelConfig, audioFormat);
if (recBufSize < 0) {
continue;
}
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
sampleRate, channelConfig, audioFormat,
recBufSize * 2);
if (audioRecord.getState() == AudioRecord.STATE_INITIALIZED) {
return;
}
audioRecord.release();
audioRecord = null;
} catch (Exception e) {
// Do nothing
}
}
}
}
throw new IllegalStateException(
"getInstance() failed : no suitable audio configurations on this device.");
}
2.常見(jiàn)錯(cuò)誤
1.有些設(shè)備上面,即使你得到了有效的AudioRecorder實(shí)例,在audioRecord.startRecording()的時(shí)候還會(huì)報(bào)ERROR_BAD_VALUE錯(cuò)誤。
這有可能是你使用了AudioManager而沒(méi)有釋放導(dǎo)致的。
其他錯(cuò)誤都可以在網(wǎng)絡(luò)上找到答案。
- Android用AudioRecord進(jìn)行錄音
- Android利用AudioRecord類(lèi)實(shí)現(xiàn)音頻錄制程序
- Android使用AudioRecord實(shí)現(xiàn)暫停錄音功能實(shí)例代碼
- Android錄音--AudioRecord、MediaRecorder的使用
- Android使用AudioRecord判斷是否有音頻輸入
- Android音頻處理之通過(guò)AudioRecord去保存PCM文件進(jìn)行錄制,播放,停止,刪除功能
- Android提高之AudioRecord實(shí)現(xiàn)助聽(tīng)器的方法
- Android?WebRTC?對(duì)?AudioRecord?的使用技術(shù)分享
相關(guān)文章
Android貝塞爾曲線(xiàn)初步學(xué)習(xí)第一課
這篇文章主要為大家詳細(xì)介紹了Android貝塞爾曲線(xiàn)初步學(xué)習(xí)的第一課,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03kotlin anko頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)方式,攜帶參數(shù)或flag
這篇文章主要介紹了kotlin anko頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)方式,攜帶參數(shù)或flag,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android ViewFlipper的簡(jiǎn)單使用
這篇文章主要為大家詳細(xì)介紹了Android ViewFlipper的簡(jiǎn)單使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Android使用 Spinner控件實(shí)現(xiàn)下拉框功能
Spinner是android的一種控件,用它我們可以實(shí)現(xiàn)下拉框。下面通過(guò)實(shí)例代碼給大家介紹Android使用 Spinner控件實(shí)現(xiàn)下拉框功能,感興趣的朋友一起看看吧2018-08-08總是聽(tīng)到有人說(shuō)AndroidX,到底什么是AndroidX
這篇文章主要介紹了總是聽(tīng)到有人說(shuō)AndroidX,到底什么是AndroidX,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Android之線(xiàn)程池ThreadPoolExecutor的簡(jiǎn)介
今天小編就為大家分享一篇關(guān)于Android之線(xiàn)程池ThreadPoolExecutor的簡(jiǎn)介,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Android 開(kāi)發(fā)程序鎖應(yīng)用簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android 開(kāi)發(fā)程序鎖應(yīng)用簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-10-10Android編程實(shí)現(xiàn)輸入框動(dòng)態(tài)自動(dòng)提示功能
這篇文章主要介紹了Android編程實(shí)現(xiàn)輸入框動(dòng)態(tài)自動(dòng)提示功能,結(jié)合實(shí)例形式分析了AutoCompleteTextView相關(guān)使用技巧,需要的朋友可以參考下2017-03-03