Наше приложение отображает предварительный просмотр камеры и, кажется, работает хорошо на всех телефонах для Motorola Droid, где мы получаем исключение во время выполнения, когда мы устанавливаем параметры камеры, кроме:камеры предварительного просмотра на Motorola Droid
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:611)
at com.highwaynorth.andrometer.CameraPreviewSurfaceView.surfaceChanged(CameraPreviewSurfaceView.java:57)
at android.view.SurfaceView.updateWindow(SurfaceView.java:460)
at android.view.SurfaceView.dispatchDraw(SurfaceView.java:287)
at android.view.ViewGroup.drawChild(ViewGroup.java:1525)
Вот код для surfaceChanged(), который в основном взяты из APIDemos
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// Now that the size is known, set up the camera parameters and begin
// the preview.
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);
parameters.setPictureFormat(PixelFormat.JPEG);
parameters.setPreviewFormat(PixelFormat.YCbCr_422_SP);
parameters.setPreviewFrameRate(1);
mCamera.setParameters(parameters);
mCamera.startPreview();
}
кто-нибудь знает, что случилось с тем, как мы устанавливаем параметры, которые будут вызывать исключение на Motorola Droid?
Вы правы. Мы изменили его, чтобы точно соответствовать APIDemos и удалили вызов setPictureFormat(), setPreviewFormat() и setPreviewFrameRate(), и теперь он отлично работает на Droid. Спасибо за подробный ответ! –