안드로이드 카메라앱 비디오 다루기
프로그래밍/Android 2013. 8. 30. 02:53안드로이드 카메라앱 비디오 다루기
카메라 앱을 활용하여 비디오를 촬영하기 위해서는 사진과 마찬가지로 카메라 접근 권한이 필요합니다.
Camera 접근 권한 요청
<manifest...>
<uses-feature android:name="android.hardware.camera" />
</manifest>
- <uses-feature> 태그로 manifest 파일에 권한을 지정하면 Google Play 에 해당 앱이 요청하는 권한이 표시됩니다.
카메라 앱을 사용하여 비디오 녹화하기
// 해당 Intent 를 처리할 앱이 존재하는지 체크한다. 카메라 앱이 있는지 체크
if( IntentUtils.isIntentAvailable( mContext, MediaStore.ACTION_IMAGE_CAPTURE)){
// 사진때와는 달리 별도의 Thread 에서 실행했다. 이렇게 별도의 Thread 를 활용하는게 권장사항이다.
mThread = new Thread( new Runnable(){
@Override
public void run() {
try{
// 비디오를 저장할 파일을 생성해서 Intent에 넘겨준다. 이것 또한 권장사항
// 파일을 지정해서 넘겨주지 않을 경우에는 별도의 공간에 저장되며
// onActivityResult() 내의 intent.getData() 로 위치를 가져올 수 있다.
mVideoF = createVideoFile();
Intent openVideoIntent = new Intent( MediaStore.ACTION_VIDEO_CAPTURE);
openVideoIntent.putExtra( MediaStore.EXTRA_OUTPUT, Uri.fromFile( mVideoF));
startActivityForResult( openVideoIntent, REQUESTCODE_CAMERA_VIDEO);
}catch( IOException e){
e.printStackTrace();
}
}
});
mThread.setName(THREAD_NAME);
mThread.start();
}else{
Log.d( TAG, "camera app not available");
}
녹화된 비디오 얻기
MediaController ctlr = new MediaController( mActivity);
ctlr.setMediaPlayer(videoView);
videoView.setVideoPath( mVideoF.getAbsolutePath());
videoView.setMediaController(ctlr);
videoView.requestFocus();
대략적으로 아래와 같은 모습입니다. 버튼 아래쪽에 VideoView 가 추가된 부분을 확인해 주세요
위에서 추가한 MediaController 는 비디오를 한번 터치해주면 비디오 하단에 표시됩니다.
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 비동기 처리하기 AsyncTask (0) | 2013.08.30 |
---|---|
안드로이드 큰 이미지를 효율적으로 로드하는 방법 (0) | 2013.08.30 |
안드로이드 Camera 앱을 활용하여 사진찍기 (4) | 2013.08.29 |
안드로이드 Activity 실행 결과 받기 (1) | 2013.08.29 |
안드로이드 다른 앱과 상호작용하기 (0) | 2013.08.28 |