: 이것은 내가 헛된 시도 몇 가지 질문을 제기했다안드로이드 : 여러 카메라 API 질문
http://marakana.com/forums/android/examples/39.html
지금까지의 답변을 찾으십시오.
1) 내 응용 프로그램은 세로 방향이어야하지만 위의 URL에 포함 된 모든 코드 예제는 모두 가로 방향에 의존하는 것 같습니다. 사실, 내가 지금까지 시도한 것이 무엇이든 상관없이, 풍경은 피할 수없는 것처럼 보인다. 그래서 같은 surfaceCreated(...)
의 매개 변수를 강제로 시도 : 나는 surfaceChanged(...)
에서 같은 일을하고 시도
Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
parameters.set("rotation", "90");
camera.setParameters(parameters);
. 다음과 같이 물론, 나는 또한 매니페스트에 세로로 내 방향을 설정하고있다 :
android:screenOrientation="portrait"
사람이 내가 잘못을하고 해결 방법을하는 무슨을에 어떤 제안이 있습니까?
2) 제가 가지고있는 또 다른 질문은 카메라 리소스를 공개하는 것과 관련이 있습니다. 위에서 언급 한 기사의 코드에서 다음은 surfaceDestroyed(...)
방법으로 호출됩니다
camera.stopPreview();
camera = null;
이 카메라 리소스를 해제 할 아무것도 없다, 그래서 당신은이 응용 프로그램, 본 카메라를 사용하는 모든 후속 응용 프로그램을 실행 한 후 작동하지. 이 문제를 해결하기 위해 오전 시도에서,이 같은 리소스를 해제하기 위해 전화를 추가 :
camera.stopPreview();
camera.release();
camera = null;
이 문제,하지만, 내가 응용 프로그램을 닫을 때, 내가 가진 "강제 닫기"를 얻을 수 있다는 것입니다 다음 LogCat의 예외 :
FATAL EXCEPTION: main
java.lang.RuntimeException: Method called after release()
at android.hardware.Camera.setHasPreviewCallback(Native Method)
at android.hardware.Camera.access$600(Camera.java:58)
at android.hardware.Camera.$EventHandler.handleMessage(Camera.java:344)
at android.os.Handler.dispatchMessage(Handler.java.99)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lanf.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
아무도 내가 왜 카메라 자원을 공개 할 수 없는지 말할 수 있습니까?
감사합니다. 이 카메라 물건이 나를 미치게합니다.
P. HTC Evo에서이 모든 것을 테스트하고 있습니다.