안드로이드 개발 질문/답변
(글 수 45,052)
동영상 첨부를 위해 직접 촬영을 하기 위해 내장 캠코더를 불러오는데요...
옵션값 줄 수 있는게 왜이리 없나요...? ㅠ_ㅠ
화질 / 해상도 / 사이즈 제한 / 시간 제한
이정도는 가능해야 하는거 아닌가요? 요 위에서 가능한건 시간제한 뿐인거 같네요...
EXTRA_VIDEO_QUALITY 는 0으로 주나 1로 주나 무슨 차이인지 모르겠고..
EXTRA_SIZE_LIMIT는 1024*1024*3 이렇게 3메가 정도로 주고 해봤는데 3메가 넘어도 계속 촬영 되구요....
EXTRA_DURATION_LIMIT만 먹네요..... 10으로 주니 10초 촬영하고 바로 저장 / 취소 선택하는 화면으로 넘겨주네요...
제가 필요한건 화질 : 일반 / 해상도 320*240 으로 해서 대략 1분 정도의 타임에 5메가 내외로 영상을 뽑아내야 하는데....
이런 옵션을 주질 못하니 기본 설정 720*480 해상도에 고화질로 찍으면 뭐 몇초도 안되서 5메가가 그냥 차버리니....
어찌해야 할까요 ㅠ 그냥 MediaRecorder 이용해서 직접 카메라를 구현해야 하는걸까요...;;;




EXTRA_SIZE_LIMIT 값의 정의를 long 으로 해보세요.
int로 정의 한 경우, 로그를 보면 아래의 경고가 뜹니다.
03-07 15:11:19.387 W/Bundle (12540): Key android.intent.extra.sizeLimit expected Long but value was a java.lang.Integer. The default value 0 was returned.
03-07 15:11:19.410 W/Bundle (12540): Attempt to cast generated internal exception:
03-07 15:11:19.410 W/Bundle (12540): java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
03-07 15:11:19.410 W/Bundle (12540): at android.os.Bundle.getLong(Bundle.java:966)
03-07 15:11:19.410 W/Bundle (12540): at android.os.Bundle.getLong(Bundle.java:949)
03-07 15:11:19.410 W/Bundle (12540): at com.android.camera.VideoCamera.initializeRecorder(VideoCamera.java:1156)
03-07 15:11:19.410 W/Bundle (12540): at com.android.camera.VideoCamera.startVideoRecording(VideoCamera.java:1519)
03-07 15:11:19.410 W/Bundle (12540): at com.android.camera.VideoCamera.onShutterButtonClick(VideoCamera.java:631)
03-07 15:11:19.410 W/Bundle (12540): at com.android.camera.ShutterButton.performClick(ShutterButton.java:108)
03-07 15:11:19.410 W/Bundle (12540): at android.view.View$PerformClick.run(View.java:13983)
03-07 15:11:19.410 W/Bundle (12540): at android.os.Handler.handleCallback(Handler.java:605)
03-07 15:11:19.410 W/Bundle (12540): at android.os.Handler.dispatchMessage(Handler.java:92)
03-07 15:11:19.410 W/Bundle (12540): at android.os.Looper.loop(Looper.java:137)
03-07 15:11:19.410 W/Bundle (12540): at android.app.ActivityThread.main(ActivityThread.java:4340)
03-07 15:11:19.410 W/Bundle (12540): at java.lang.reflect.Method.invokeNative(Native Method)
03-07 15:11:19.410 W/Bundle (12540): at java.lang.reflect.Method.invoke(Method.java:511)
03-07 15:11:19.410 W/Bundle (12540): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-07 15:11:19.410 W/Bundle (12540): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-07 15:11:19.410 W/Bundle (12540): at dalvik.system.NativeStart.main(Native Method)