[問題] MediaRecorder(已解決)

看板AndroidDev作者 (....)時間13年前 (2011/06/06 23:06), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
開發層: (應用/框架/庫/核心) App 問題: 有關MediaRecorder.setAudioSource() 和getMaxAmplitude() 輸入: 從麥克風的聲音輸入 預期輸出: MR.start()到MR.getMaxAmplitude()被call到之前的最大音量 錯誤輸出: MR.getMaxAmplitude()一直return的結果都是0 錯誤訊息: MR.setAudioSource()出現了 unsupported parameter的error 上網GOOGLE了發現一堆人都有這個問題 http://code.google.com/p/android/issues/detail?id=5063 這是系統的BUG嗎? 程式碼: (請多利用置底文網站) Log.i("ffffffffffffffb","before set MIC"); mRecorder = new MediaRecorder(); mRecorder.reset(); Log.i("bbbbbbbbbbbbb","before set MIC"); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); Log.i("cccccccccccc","before set MIC"); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); Log.i("aaaaaaaaa","before set MIC"); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); mRecorder.setOutputFile("/mnt/sdcard/testAudio.amr"); . . . . . . //在start()之後5秒呼叫 //這行一值得到0的結果 Log.i("Volume",String.valueOf(mRecorder.getMaxAmplitude)); 參考: (書籍/網頁/...) 補充說明: permiss的 RECORD_AUDIO和EXTERNAL_STORAGE都有加了 弄了很久之後確定問題應該是出在這兩行 有人有辦法抓到非0的值嗎 錄音檔我用電腦開得起來 聲音也聽得到 還是我得改用AudioRecord呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.175.14

06/06 23:07, , 1F
手機是用DESIRE 好像很多支手機都有這個災情
06/06 23:07, 1F

06/07 00:08, , 2F
第二個BUG已解
06/07 00:08, 2F

06/07 00:09, , 3F
getMaxAmplitude()這個METHOD CALL第一次一定會得到0的值
06/07 00:09, 3F

06/07 00:10, , 4F
必須在第一次CALL完後約0.15秒的DELAY在CALL一次才有值
06/07 00:10, 4F
文章代碼(AID): #1DxEpcFz (AndroidDev)
文章代碼(AID): #1DxEpcFz (AndroidDev)