2014-06-23 3 views
1

캡처 모드에서 촬영 모드 (비디오)로 이동해야하는 응용 프로그램을 개발 중이며 그 반대의 경우도 마찬가지입니다.캡쳐 모드를 안드로이드에서 비디오 모드로 전환하는 방법

제발 도와주세요. 내가 여기있는 노예입니다. 이 튜토리얼을 사용할 수 있는지 제안 해주세요.

모든 종류의 도움을 주시면 감사하겠습니다. 감사합니다. 비디오 모드에서 카메라를 엽니 다

+0

어떻게 모드를 변경 하시겠습니까? 버튼 클릭? –

+0

아니요 스위치 제어를 사용하여 모드를 변경하고 있습니다. –

답변

0

사용이 방법은

private void dispatchTakeVideoIntent() { 
     Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
     if (takeVideoIntent.resolveActivity(getPackageManager()) != null) { 
      startActivityForResult(takeVideoIntent, 1); 
     } 
    } 

다음 클래스

public class CaptureVideo extends Activity implements OnClickListener, SurfaceHolder.Callback{ 

    MediaRecorder recorder; 
    SurfaceHolder holder; 
    boolean recording=false; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
     WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

     recorder = new MediaRecorder();// Instantiate our media recording object 
     initialiseRecorder(); 
     setContentView(R.layout.view); 

     SurfaceView cameraView = (SurfaceView) findViewById(R.id.surface_view); 
     holder = cameraView.getHolder(); 
     holder.addCallback(this); 
     holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 

     cameraView.setClickable(true); 
     cameraView.setOnClickListener((OnClickListener) this); 
    } 

    private void initialiseRecorder() { 
     File OutputFile = new File(Environment.getExternalStorageDirectory().getPath()); 
     String video= "/DCIM/100MEDIA/Video"; 
     CamcorderProfile cpHigh = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH); 
     recorder.setProfile(cpHigh);   

     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);// generally used also includes h264 and best for flash 
     recorder.setOutputFile(OutputFile.getAbsolutePath()+video+".3gp"); 
     recorder.setMaxDuration(600000); 
    } 
    private void prepareRecorder() { 
     recorder.setPreviewDisplay(holder.getSurface()); 
     try { 
      recorder.prepare(); 
     } catch (IllegalStateException e) { 
      e.printStackTrace(); 
      finish(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      finish(); 
     } 
    } 
    public void onClick(View v) { 
     if (recording) { 
      recorder.stop(); 
      recording = false; 
      initialiseRecorder(); 
      prepareRecorder(); 
      Toast display = Toast.makeText(this, "Stopped Recording", Toast.LENGTH_SHORT);// toast shows a display of little sorts 
      display.show(); 
     } else { 
      recorder.start(); 
      recording = true; 
     } 
    } 
    public void surfaceCreated(SurfaceHolder holder) { 
     initialiseRecorder(); 
     prepareRecorder(); 
    } 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, 
      int height) { 
    } 
    public void surfaceDestroyed(SurfaceHolder holder) { 
     if (recording) { 
      recorder.stop(); 
      recording = false; 
     } 
     recorder.release(); 
     finish(); 
    } 

}

+0

나는 당신이 정확하게 나를 데려 오지 않는다고 생각합니다. 표면보기를 사용하여 카마라를 사용하고 있습니다. –

+0

죄송합니다 .. 나는 그것이 의도를 사용하고 있다고 생각했습니다. 업데이트 내 대답 –

0

작성에게 더 video basics

사용이 URL을 통해 이동하시기 바랍니다 부울 변수 Boolean video = false; 이제 스위치 상태에 따라 변수 값을 전환하십시오. 그런 다음 녹화를 시작하거나 사진을 찍을 때마다 video 변수의 값을 확인하십시오.

static final int REQUEST_IMAGE_CAPTURE = 1; 
static final int REQUEST_VIDEO_CAPTURE = 2; 

if(video) { 

    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
    if (takeVideoIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE); 
    } 
} else { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 

} 
+0

당신의 대답에 감사드립니다. 카마라의 내장 된 기능과 동일하게 만들고 싶습니다. camara가 이미 시작되었습니다. 의도를 통해 달성하고 싶지 않습니다. –

+0

http://stackoverflow.com/questions/14029057/how-to-open-camera-then-switch-to-image-mode-vice-versa –

+0

대답이 없습니다. –

관련 문제