카메라에서 화면에 보이는 내용을 보여주는 매우 간단한 앱을 만들려고합니다. 에뮬레이터 (내가 사용했던 전화와 동일한 사양)를 사용하여 응용 프로그램을 만들었습니다. 회색과 흰색의 제곱 된 배경이 그 위를 움직이는 회색으로 표시되어 모든 코드와 사용 권한이 올바른지 확신합니다.Android 카메라 미리보기 - '파일 없음 - 카메라를 전환 할 수 없음'
Wildfire 전화 (Android 버전 : 2.2.1)에서 앱을 실행하려고하면 아무 것도 표시되기 전에 강제로 닫히고 로그를 확인하면이 오류가 표시됩니다.
- 12월 12일에서 8일까지 : 41 : 42.649 : W/CameraSwitch (3004) : 오픈 메인 카메라
- 12월 12일에서 8일까지 : 41 : 42.659 : W/CameraSwitch (3004) : 없음 파일 - 수 없다 41 : 카메라를
- 12월 12일에서 8일까지 전환 43.239 : D/(3004) AndroidRuntime : VM
종료 좀 사이트를 통해 모습과는 OS 나 하드웨어에 문제가있을 것 같다. 누구든지 주변에서 일을 발견 했습니까?
어리석은 실수를 한 경우를 대비하여 코드를 게시 할 예정입니다. 카메라를
class Preview extends SurfaceView implements SurfaceHolder.Callback {
SurfaceHolder mHolder;
public Camera camera;
Preview(Context context) {
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera = null;
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(width, height);
camera.setParameters(parameters);
camera.startPreview();
}
}
Manifest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" >
<activity android:label="@string/app_name" android:name=".InformationPassingTestActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
어떤 도움이 놀라운 :) 것을 처리
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
public class InformationPassingTestActivity extends Activity {
Preview preview;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
preview = new Preview(this);
setContentView(preview);
}
}
내 미리보기 클래스는
는
... 카메라가 미리보기 크기를 광고하는 경우에도 항상 지원하지는 않습니다. HTC Hero 님이 한 번 물어 뜯는 @ss를 얻으 셨습니다.) –
@ethan Camera.close()가 없습니다. release()를 의미합니까? –
죄송합니다. 답변을 평가/승인/평가하는 데 너무 오래 걸렸습니다. 완벽하게 작동합니다. 문제는 지원되는 크기 였지만 코드를 직접 사용하지는 않았지만 문제가 드러났습니다. 정말 고맙습니다 :) –