0
可能重複:
MediaRecorder: setCamera() - error camera is not aviable的Android MediaRecorder導致強制停止錯誤
我在做一個應用程序,允許用戶記錄音頻和地方保存在SD卡。我正在使用MediaRecorder來錄製音頻。
我重複使用了一些來自androiddevblog網站的代碼,因爲它是由另一位用戶在stackoverflow上推薦的,以檢查這些教程。
我的問題是每當我點擊按鈕記錄音頻時,我收到一個錯誤,說「你的應用程序已被迫停止」。我已經發布了下面的錄製功能的代碼。
編輯:我解決了我原來的問題。現在,當我將recorder.stop()添加到我的代碼中時,我得到了一個illegalStateException。我也更新了下面的代碼(唯一的變化是在startRecorder方法中)。有任何想法嗎 ?
我知道沒有什麼會根據我的代碼得到記錄。我想首先確保文件被創建並保存。
public class MyRecorderActivity extends Activity{
private Button audio;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.questionandanswer);
....
....
audio = (Button) findViewById(R.id.audio_recordactivity);
audio.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startRecording();
}
});
}
private String getFilename(){
String filepath = Environment.getExternalStorageDirectory().getPath();
File file = new File(filepath,AUDIO_RECORDER_FOLDER);
if(!file.exists()){
file.mkdirs();
}
return (file.getAbsolutePath() + "/");
}
private void startRecording(){
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(getFilename());
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
recorder.stop();
recorder.reset();
recorder.release();
}
}
什麼是使用模擬器或Android設備? –
我認爲如果帖子中包含單詞「強制」和「關閉」,那麼需要自動提醒發佈LogCat。 @ AndroidDev93,檢查你的LogCat,看看*拋出了什麼*異常以及在哪裏。如果這不能幫助您找出問題,請將日誌編輯到您的問題中。 – kcoppock
@K_Anas - 我正在使用華碩Transformer平板電腦。不是模擬器。 – AndroidDev93