2012-10-21 1 views
0

다음은 비디오 캡쳐에 도움이되는 코드입니다. 그러나 문제는 이미 프레임 속도를 초당 30 프레임으로 정의했기 때문에 프레임 속도입니다. 그것의 초당 다시 카메라 8 프레임의 출력을 제공 할 때 기록 전면 카메라를 사용하여 비디오는안드로이드 비디오 레코딩 응용 프로그램의 운율 - 초당 약 30 프레임이 필요합니다 ..!

mrec.setVideoFrameRate(30); 

당신으로 작동하지 않을 수 있습니다 안드로이드 문서에 따라 최대 15 ~ 18 프레임

private void startRecording() { 

    if(mrec != null){ 
     mrec.reset(); 
    } 

    mCamera.unlock(); 
    mrec.setCamera(mCamera); 
    mrec.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
    mrec.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
    mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    mrec.setVideoSize(640, 480); 
    mrec.setVideoEncodingBitRate(3000000); 
    mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    mrec.setVideoEncoder(MediaRecorder.VideoEncoder.H264);// MPEG_4_SP 

    File dir = new File(SdCardPath + Directory); 
    if (!dir.exists()) { 
     if (dir.mkdir()) { 
      Log.v(STORAGE_SERVICE, "Created directory"); 
     } else { 
      Log.v(STORAGE_SERVICE, "Failed to create Directory"); 
     } 
    } 

    FullFilePath = SdCardPath + Directory + RecordFileName; 

    mrec.setOutputFile(FullFilePath); 
    mrec.setVideoFrameRate(30); 
    mrec.setPreviewDisplay(surfaceHolder.getSurface()); 
    try { 
     mrec.prepare(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    mrec.start(); 
} 

답변

0

을 제공 그것을 기대하고 있습니다. 장치가 초 당 30 프레임을 제공 할 수 없다면 내부 클리핑이있을 것이고 프레임 속도는 장치가 지원하는 최대 프레임 속도로 설정됩니다.

또한 실제적으로 합법적 인 값이라 할지라도 setVideoFrameRate() 호출은 신뢰할 수 없으며 실제 프레임 속도는이 함수에 전달한 값과 다를 수 있습니다.

+0

나는'mrec.setVideoFrameRate (30);와 동의한다. 작동하지 않았다. 그런 다음 surfaceCreated() 함수에 다음 코드를 추가했습니다. '매개 변수 p = mCamera.getParameters(); \t p.setPreviewFrameRate (29); \t p.setPreviewFpsRange (24000,29000); \t p.setPreviewSize (640, 480); \t mCamera.setParameters (p); ' 이것은 안드로이드 2.3.3에서 잘 작동하지만 위의 버전에서는 응용 프로그램이 충돌합니다. !! !! 어떤 생각 ?? –

+0

진저 브레드 버전 이후에는 카메라에 액세스하는 방법이 다른 API를 통해 이루어집니다. 코드에서 내장 버전이 진저 브레드 이상인지 확인하고 별도의 메커니즘을 사용하여 카메라에 액세스해야합니다. 몇 가지 코드는 http://digitaldumptruck.jotabout.com/?p=797을 참조하십시오. –

관련 문제