2010-04-12 6 views
2

이곳은 새로운 곳입니다. 나는 많은 성공없이 안드로이드 에뮬레이터를 사용하여 비디오 캡처 애플 리케이션을 만들려고 노력하고 있습니다. 제가 아는 한 인터넷 (이 사이트 및 다른 사이트)의 모든 샘플 및 코드를 살펴보면, 나는 한 단계도 빠뜨려 야합니다.MediaRecorder Prepare Failed

나는 JonPro에 의해 만들어진이 스레드의 끝 부분이 샘플을 사용하여 시도했다 : http://www.anddev.org/viewtopic.php?p=24723#24723

를하고 난 내 자신을 시도했지만 미디어 레코더는 항상 가장 인정과 준비 단계에 실패 'prepare failed'메시지가 표시됩니다. 나는 실종 된 것을 모른다. 올바른 사용 권한을 갖고 SDCard가 에뮬레이터에 따라 마운트 된 것 같습니다. 2.1 이외의 Android SDK 버전을 사용해야합니까?

포럼의 코드가 작동한다고해도이 라인이 누락되었음을 알았습니다. recorder.setCamera (camera); '카메라를 가져 오지 못했습니다 (0x16b70) 매개 변수' 호출되지 않고 미리보기가 괜찮으로 여전히 이해가되지 않습니다,하지만 녹음 할 때 준비() :

그러나 여전히 로그와 같은 기쁨이 있음을 보여줍니다! 어떤 도움이나 제안을 주시면 감사하겠습니다.

편집 : 누구나 SDK와 에뮬레이터에서 작동하는지 확인할 수 있습니까? 또는 나는이 버전에서 작동하도록 노력하면서 시간을 낭비하고 있습니다. OpenSource처럼 prepare 함수의 소스 코드를 얻을 수 있습니까?

+0

저는 비디오를 오랜 시간 동안 성공적으로 기록하려고 노력해 왔습니다. 해결 방법으로 MediaStore.ACTION_CAPTURE_VIDEO 인 텐트를 사용하여 비디오를 녹화하고 반환하는 내장 된 응용 프로그램을 시작했습니다. –

답변

5

이 문제의 해결 방법은 준비하기 전에 mCameraDevice.unlock()을 설정해야합니다. 이것은 mCameraDevice.setPreviewDisplay (mHolder)의 뒤에 설정하는 것이 중요합니다.

예 :

/*--------------------------------------surfaceCreated---------------------------------------------*/ 
/** 
* Surface Created sets that the surface is created. 
*/ 
public void surfaceCreated(SurfaceHolder arg0) { 
    // TODO Auto-generated method stu1595 
     try { 
      Log.d(LOG_TAG, "setPreviewDisplay enter"); 
      mCameraDevice.setPreviewDisplay(mHolder); 
      Log.d(LOG_TAG, "setPreviewDisplay exit"); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     mCameraDevice.unlock(); 
     Log.d("*************", "***********unlock()****"); 
    isSurfaceCreated = true; 


} 

BR P.N

+0

+1은'prepare' 전과'setPreviewDisplay' 후에 카메라가 잠금 해제되어야한다는 정보입니다. – Jomoos

0
recorder.setVideoSize(176, 144); 
recorder.setVideoFrameRate(20); 
recorder.setAudioChannels(1); 
recorder.setPreviewDisplay(mHolder.getSurface()); 

이 나를 위해 도움이되었다. 디버그 중에 logcat 살펴보기

관련 문제