안드로이드 개발 질문/답변
(글 수 45,052)
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");
}



