2013-02-06 38 views
6

Tôi đang phát triển ứng dụng Camera quá mức trong đó tôi đang sử dụng máy ảnh api để xem trước và hiệu ứng lớp phủ. Tôi đang nhận được lỗi gần trong một số điện thoại di động và nó không xảy ra điện thoại di động khác.java.lang.RuntimeException: setParameters thất bại trong Camera Api

Mã của tôi:

parameters = camera.getParameters(); 
List<Size> sizes = parameters.getSupportedPreviewSizes(); 
Size optimalSize = getOptimalPreviewSize(sizes, w, h); 
parameters.setPreviewSize(optimalSize.width, optimalSize.height); 
parameters.setColorEffect(Camera.Parameters.EFFECT_SOLARIZE); 
setCameraDisplayOrientation(MainActivity.this,0, camera); 
camera.getParameters(); 
camera.setParameters(parameters); 

Đây là những ngăn xếp cuộc gọi Tôi nhận

java.lang.RuntimeException: setParameters failed 
    at android.hardware.Camera.native_setParameters(Native Method) 
    at android.hardware.Camera.setParameters(Camera.java:1046) 
    at com.androidpixels.watercamera.MainActivity.surfaceChanged(MainActivity.java:1241) 
    at android.view.SurfaceView.updateWindow(SurfaceView.java:575) 
    at android.view.SurfaceView.updateWindow(SurfaceView.java:407) 
    at android.view.SurfaceView.dispatchDraw(SurfaceView.java:352) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.View.draw(View.java:6936) 
    at android.widget.FrameLayout.draw(FrameLayout.java:357) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1917) 
    at android.view.ViewRoot.draw(ViewRoot.java:1530) 
    at android.view.ViewRoot.performTraversals(ViewRoot.java:1266) 
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1868) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:130) 
    at android.app.ActivityThread.main(ActivityThread.java:3693) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 
    at dalvik.system.NativeStart.main(Native Method) 

Xin hãy giúp tôi. Điều gì có thể là lý do?

+0

Chúng tôi không thể đoán bất kỳ điều gì mà không thấy một số mã. –

+0

Chỉ đăng logcat không có ý nghĩa đối với bất kỳ ai tìm thấy vấn đề trong mã của bạn mà không cần kiểm tra mã. vì vậy tôi nghĩ bạn cũng cần gửi một số mã. – GrIsHu

+0

Tôi đang sử dụng liên kết này http://p2p.wrox.com/book-professional-android-application-development-isbn-978-0-470-34471-2/72528-article-using-android-camera.html –

Trả lời

7

Thông số máy ảnh Android khác nhau giữa các thiết bị. bạn cần phải xác minh rằng các thiết bị hỗ trợ các tham số bạn đang cố gắng để thiết lập trước khi đặt nó, thấy điều này Camera SetParameters Doc

Bạn có thể truy vấn các thông số hỗ trợ bởi:

  • Có được một đối tượng thông số: Camera.Parameters params = mCamera.getParameters();
  • Sau đó truy vấn đối tượng cho Parameter cụ thể, nói PreviewSize:

    params.getSupportedPreviewSizes()

+0

vâng tôi sử dụng tham số = camera.getParameters(); \t \t Danh sách sizes = parameters.getSupportedPreviewSizes(); \t \t Kích thước tối ưuSize = getOptimalPreviewSize (kích thước, w, h); \t \t parameters.setPreviewSize (optimizeSize.width, optimalSize.height); \t \t parameters.setColorEffect (Camera.Parameters.EFFECT_SOLARIZE); \t setCameraDisplayOrientation (MainActivity.this, 0, camera); \t camera.getParameters(); \t camera.setParameters (tham số); –

+2

Vui lòng đặt mã này vào câu hỏi của bạn –

Các vấn đề liên quan