2011-11-08 5 views
1

계속 사진을 찍는 앱을 작성하려고합니다. 활동과 미리보기 클래스가 있습니다. 나는 AsyncTask 클래스를 사용하여 그것을 알아 낸 것입니다.카메라 미리보기 실패 - queueBuffer 실패

private class CaptureTask extends AsyncTask<Boolean,Integer,Integer> 
    { 

     @Override 
     protected Integer doInBackground(Boolean... arg0) { 
      // TODO Auto-generated method stub 
      while(running) 
      { 
       if(!takingPicture&&getPreviewState()&&!p.checkCamera()) 
        takePicture(); 
       else if(!takingPicture&&!p.getPreviewState()) 
        clearPic(); 
      } 
      return picCounter; 
     } 
     protected void onPostExecute(Integer pics) 
     { 
      t.setText("Pics taken: "+pics); 
     } 

    } 

이 장치는 하나의 장치에서 작동하며, Motorola Droid는 CM7을 실행합니다. 그러나 ACS 2.3.4를 실행하는 Samsung Epic에로드 할 때 앱을 종료 할 때까지 다음 오류가 계속 발생합니다. 검은 색으로 표시된 미리보기가 없습니다.

11-08 11 : 42 : 28.207 : ERROR/CameraHardwareSec (76) ERR (INT 로이드 :: CameraHardwareSec :: previewThread()) 오버레이 queueBuffer 실패 11-08 11 : 42 : 28.238 : ERROR/v4l2_utils (76) : Error = qbuf의 잘못된 인수

이 문제를 찾으려고했지만 해결되지 않은 문제가 몇 개 발견되었습니다.

답변

1

당신이> = 8

대신 일반적인 작업을 수행

mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)); 

당신이 SDK를 사용하여 작업하는 경우에도 미디어 레코더를 설정하는 데 사용하지 않는 영상을 녹화하려고하는 경우 :

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); 

그리고 당신은 보는 중지됩니다

안드로이드 :: CameraHardwareSec :: previewThread()) : 오버레이 queueBuffer 오류가 사라대로와 크기가 동일 할 때이 오류의

소스는 기본 카메라 미리보기 및 MediaRecorder 비디오 크기의 크기 사이의 불일치입니다 실패 :

CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH); 
parameters.setPreviewSize(camcorderProfile.videoFrameWidth, camcorderProfile.videoFrameHeight); 
mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));