안드로이드 개발 질문/답변
(글 수 40,700)
07-20 01:20:47.536: ERROR/SecCamera(2157): initCamera: m_cam_fd(39), m_jpeg_fd(0)
07-20 01:20:47.561: ERROR/SecCamera(2157): initCamera: m_cam_fd2(41)
07-20 01:20:47.566: ERROR/SecCamera(2157): SetRotate(angle(0))
07-20 01:20:47.566: ERROR/SecCamera(2157): setRecordingSize(width(640), height(480))
07-20 01:20:47.566: ERROR/ShotSingle(2157): call newMediaPlayer
07-20 01:20:47.886: ERROR/SecCamera(2157): SetRotate(angle(0))
07-20 01:20:47.886: ERROR/SecCamera(2157): setRecordingSize(width(533), height(320))
07-20 01:20:47.916: ERROR/SecCamera(2157): stopPreview()
07-20 01:20:47.916: ERROR/SecCamera(2157): stopPreview: m_flag_camera_start is zero
07-20 01:20:47.916: ERROR/SecCamera(2157): startPreview()m_preview_width: 533 m_preview_height: 320 m_angle: 0
07-20 01:20:49.106: ERROR/SecCamera(2157): startPreview: get the first frame of the preview
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): startPreview : return startPreview 0
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): CameraHardwareSec: mPostViewWidth = 640 mPostViewHeight = 480 mPostViewSize = 614400
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): CameraHardwareSec: mRawHeap : MemoryHeapBase(previewHeapSize(614408))
07-20 01:20:49.126: ERROR/CameraHardwareSec(2157): autoFocusThread()
07-20 01:20:49.241: ERROR/Camera(11726): Error 0
위에 표시는 제가 개인적으로 이상하다고 생각 되는 부분에 표시를 해두었습니다.
이후 아래쪽에 있는 에러 메시지가 계속해서 나옵니다.
07-20 01:20:49.311: ERROR/copybit(2208): Error in VIDIOC_STREAMON
07-20 01:20:49.311: ERROR/copybit(2208): Fail : v4l2_stream_on()
07-20 01:20:49.311: ERROR/copybit(2208): stretch_copybit::sec_stretch fail : ret=-5
카메라는 landscape 상태로 설정해 놓았습니다.
테스트폰 기종은 갤럭시S 입니다.
소스 코드 첨부 합니다
07-20 01:20:47.561: ERROR/SecCamera(2157): initCamera: m_cam_fd2(41)
07-20 01:20:47.566: ERROR/SecCamera(2157): SetRotate(angle(0))
07-20 01:20:47.566: ERROR/SecCamera(2157): setRecordingSize(width(640), height(480))
07-20 01:20:47.566: ERROR/ShotSingle(2157): call newMediaPlayer
07-20 01:20:47.886: ERROR/SecCamera(2157): SetRotate(angle(0))
07-20 01:20:47.886: ERROR/SecCamera(2157): setRecordingSize(width(533), height(320))
07-20 01:20:47.916: ERROR/SecCamera(2157): stopPreview()
07-20 01:20:47.916: ERROR/SecCamera(2157): stopPreview: m_flag_camera_start is zero
07-20 01:20:47.916: ERROR/SecCamera(2157): startPreview()m_preview_width: 533 m_preview_height: 320 m_angle: 0
07-20 01:20:49.106: ERROR/SecCamera(2157): startPreview: get the first frame of the preview
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): startPreview : return startPreview 0
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): CameraHardwareSec: mPostViewWidth = 640 mPostViewHeight = 480 mPostViewSize = 614400
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): CameraHardwareSec: mRawHeap : MemoryHeapBase(previewHeapSize(614408))
07-20 01:20:49.126: ERROR/CameraHardwareSec(2157): autoFocusThread()
07-20 01:20:49.241: ERROR/Camera(11726): Error 0
위에 표시는 제가 개인적으로 이상하다고 생각 되는 부분에 표시를 해두었습니다.
이후 아래쪽에 있는 에러 메시지가 계속해서 나옵니다.
07-20 01:20:49.311: ERROR/copybit(2208): Error in VIDIOC_STREAMON
07-20 01:20:49.311: ERROR/copybit(2208): Fail : v4l2_stream_on()
07-20 01:20:49.311: ERROR/copybit(2208): stretch_copybit::sec_stretch fail : ret=-5
카메라는 landscape 상태로 설정해 놓았습니다.
테스트폰 기종은 갤럭시S 입니다.
소스 코드 첨부 합니다
private void startCamera () { SurfaceHolder holder = mPreview.getHolder(); if (mHasSurface) { Log.d(TAG, "startCamera after pause"); // Resumed after pause, surface already exists surfaceCreated(holder); startCameraPreview(); } else { Log.d(TAG, "startCamera from scratch"); // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } } private void startCameraPreview () { if (!mCameraPreviewing) { mCamera.startPreview(); mCameraPreviewing = true; if (mContinuousMode) { requestAutoFocus(); // Trigger continuous capture } } } private void stopCameraPreview () { if (mCameraPreviewing) { mCamera.stopPreview(); mCameraPreviewing = false; } } private void stopCamera () { if (mCamera != null) { stopCameraPreview(); mCamera.release(); mCamera = null; } } public void surfaceCreated(SurfaceHolder holder) { // The Surface has been created, acquire the camera // and tell it where to draw. mCamera = Camera.open(); try { mCamera.setPreviewDisplay(holder); Log.d(TAG, "surfaceCreated: setPreviewDisplay"); } catch (IOException e) { Log.e(TAG, "Camera preview failed", e); mCamera.release(); mCamera = null; // TODO add more exception handling logic here } mHasSurface = true; } public void surfaceDestroyed(SurfaceHolder holder) { // Surface will be destroyed when we return, so stop the preview. // Because the CameraDevice object is not a shared resource, it's very // important to release it when the activity is paused. stopCamera(); mHasSurface = false; } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // Size is known: set up camera parameters for preview size Camera.Parameters params = mCamera.getParameters(); params.setPreviewSize(w, h); mCamera.setParameters(params); // Get parameters back; actual preview size may differ params = mCamera.getParameters(); Size sz = params.getPreviewSize(); mPreviewWidth = sz.width; mPreviewHeight = sz.height; startCameraPreview(); Log.d(TAG, "surfaceChanged: startPreview"); }