2011-02-04 2 views
0

MediaRecorder를 간단한 오디오 레코더로 설정하면 "recorderName.prepare()"가 Eclipse에서 "처리되지 않은 IOException"으로 표시됩니다.Android MediaRecorder .prepare 처리되지 않은 IOEception

일부 오류 예외를 적용하면 프로그램이 실행되지만 분명히 .prepare 문이 작동하지 않습니다. MediaRecorder에 대한

나는 밖으로 만들 수있는 지금까지 내가 선언 한 모든 :

를 AudioSource OutPutFormat 인코더 나는 또한 매니페스트에 RECORD_AUDIO와 WRITE_EXTERNAL_STORAGE 권한을 선언 한 출력 파일

.

import android.media.MediaRecorder; 
private MediaRecorder mRec; //Gobal 
. 
. 
. 
public void StartRec() 
{ 
      mRec = new MediaRecorder(); 
      mRec.setAudioSource(MediaRecorder.AudioSource.MIC); 
      mRec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
      mRec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
      mRec.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.3gp"); 

      mRec.prepare(); //Underlined as an Unhandled Exception 
      mRec.start(); 
} 

Eclipse는이 메소드를 try 및 catch하거나 메소드에 선언을 추가 할 것을 권장합니다.

에뮬레이터에서 생성 된 스택 트레이스는 응용 프로그램을 컴파일 할 수 없습니다.

나는 2 주 미만 동안이 점에 유의하시기 바랍니다.

이 질문은 acheingly 쉽게,하지만 난 그냥 옵트 아웃 도움 :(

요구에 정당한 느낌이 안드로이드에 시작 만되었을 고려 수는 감사

+0

당신은 문제가있는 코드를 게시하시기 바랍니다. 또한 발생한 오류에 대한 스택 추적을 게시하십시오. –

답변

0

prepare() 기능 IOException을 던지십시오. 따라서 Java는 항상 예외가 '잡히거나'던져 지도록 지시합니다.

Eclipse는 사용자가 잡기 어렵다는 경고를 받았으며 가장 빠른 방법은 Eclipse가 sugges로 수행하는 것입니다. 팅

try{ 
    mRec.prepare(); //Underlined as an Unhandled Exception 
}catch (IOException e){ 
    Log.e("yourTag","There was a problem: ".e->toString()); 
} 

에만 오류가 경우, 당신이 그것을 잡아 오류보고를 할 수 있다는 것을 의미한다. 이제 다음과 같이 말하면됩니다 :

* 만약 내가 프로그램을 실행하지만 분명히 .prepare 문이 작동하지 않습니다 몇 가지 오류 예외를 넣어. *

하지만 실제로 그렇게 분명합니까? 오류가 발생하는 경우이를 수정하고 수정해야하지만, 그렇지 않은 경우 (묵시적인 것처럼 보이는 경우) 코드가 올바르게 작동합니다. Try-catch는 prepare이 실행되는 것을 막지 않으며 문제에 대한 옵션 만 제공합니다 (예외적으로 사용해야합니다 (예 : 파일을 사용할 수 없거나 찾거나 열 수 없음).

(또한,이 링크를 체크 아웃 : oracle java manual를 예외에 대한 좀 더 많은 정보를 원하시면)

+0

좋아, 알겠지만, 나는 잘못된 시점에 준비를하고 있다고 생각했다. 고마워, 나는 이제 그걸 가지고 놀아 볼거야. – FullySearchable

관련 문제