2012-08-12 5 views
0

안드로이드 2.2에서 코드는 2.3에서 정상적으로 작동하지만 MediaRecorder.start()에서 충돌합니다. 로그와 코드 자체는 아래에 있습니다. 많은 정보를 얻지 못한다는 것을 알 수 있듯이, 로그에는 "-2147483648 시작 실패"메시지가 표시됩니다. 나는 나이 먹으려 고 노력해 왔고 이걸 알아 내지 못해, 내가 뭘 잘못하고있어?안드로이드 2.3 "시작 실패 -2147483648"mediaRecorder 오류

mediaRecorder = new MediaRecorder(); 

    try { 
     camera.unlock(); 

     mediaRecorder.setCamera(camera); 

     mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); 
     mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 

     mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)); 
    mediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString()); 

     mediaRecorder.setPreviewDisplay(cameraPreview.getHolder().getSurface()); 

     mediaRecorder.prepare(); 

     mediaRecorder.start(); // thats the line code fails 

     fightTimer.start(); 
    } 
    catch (RuntimeException ex) { 
     Toast.makeText(this,"Sorry, camera is currently not available"+ex.toString(), 2000).show(); 
    } 
    catch (IOException ex) { 
     Toast.makeText(this,"Sorry, camera is currently not available"+ex.toString(), 2000).show(); 
    } 

단지 잘못된 오류 코드입니다

08-13 06:34:56.914: I/MediaRecorderJNI(2256): prepare: surface=0x2bb230 (identity=13) 
08-13 06:34:57.764: E/MediaRecorder(2256): start failed: -2147483648 
+0

관련 권한이 있습니까? –

+0

예,이 모든 안드로이드 2.2에서 작동합니다. – spirytus

+0

죄송합니다.이 오래된 스레드에 게시 해 주셔서 죄송합니다.하지만 내 코드는 2.3에서 작동하지만 4.0에서 충돌합니다. –

답변

0

를 기록합니다. 그러나 첫 번째 줄 prepare: surface은 VideoPlayer 경계를 구성하는 것과 관련하여 갑자기 예외가 발생한다는 것을 나타냅니다.

setVideoSize()이 필요합니까?

TIP : (! 오류 코드없이 - 그 오류 코드 오류 메시지 자체만큼이나 무작위처럼 보인다) 나는 "안드로이드 mediarecorder 시작 실패"를 검색 것

편집 : Android 2.2에서 작동하므로 MediaRecorder 용 API 2.2와 API 2.3 사이의 API 변경 사항을 살펴 보았습니까?

+0

CamcorderProfile을 통해 고품질로 설정된 비디오 크기 등이 있습니다. , 나는 실제로 이러한 값을 수동으로 설정하려고했고 그 결과는 같았다 : ( – spirytus

+0

알았어. 팁을 참조하십시오 :) –

+0

EDIT –