2012-10-01 52 views
4

簡介:如何檢查語音記錄是否已在其他某個應用的後臺運行。android:媒體記錄器:啓動失敗:-38

詳細信息:如果語音錄製已經在本機應用程序:Voice recorder的後臺運行。 現在我已將語音錄製功能作爲我應用程序中的一項功能。

問題:當我在我的同時應用程序嘗試記錄,提示錯誤:在第100行

: E/MediaRecorder: start failed: -38 
    : E/MyApp: [1162][com.sec.MyApp.multimedia.RecordMyVoice]java.lang.IllegalStateException 
    : E/MyApp: at android.media.MediaRecorder.start(Native Method) 
    : E/MyApp: at com.sec.MyApp.multimedia.RecordMyVoice.doInBackground(RecordMyVoice.java:100) 

守則RecordMyVoice.java:

mRecorder = new MediaRecorder(); 
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    mRecorder.setOutputFile(mFileName); 
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
    mRecorder.prepare(); 
    mRecorder.start(); //code at 100th line 

但問題是,因爲已經錄音在後臺運行。 因此,是否有任何方法來停止語音錄製,如果它運行在其他應用程序。

任何輸入都會有很大的幫助。

+0

如果它已經在運行,那麼它應該有一個原因,不是嗎?如果他想使用_your_錄製功能,可以提示用戶停止。不是一個令人滿意的答案,因此只是一個評論。也許有人有一個更好的主意。 – Fildor

+0

您應該至少捕獲'prepare'和'start'引發的異常。 – Michael

+0

我已經添加了try catch塊,但仍然處理程序返回錯誤消息,並且在那裏顯示吐司作爲失敗記錄。但是我想讓後臺記錄器停止。 – parul

回答

0

檢查您的文件路徑,該目錄必須存在。

1

我有同樣的錯誤-38,我發現有另一個背景服務,使用麥克風通過(AudioRecord),當禁用後臺服務,它的工作。