камера Эмулятора хорошо работала для того, чтобы снять в 2.1 Эклерах. То, что не работало, записывало видео, очевидно.
Теперь запуская приложение, которое работало просто безупречное над 2.1 причинами Эмулятора приложение для камеры для катастрофического отказа. Я разжигаю намерение запустить его:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(TEMP_PHOTO_FILE)));
startActivityForResult(intent, REQUEST_CAMERA);
Это запускает приложение для камеры, но после нескольких секунд оно отказывает. Вывод:
06-01 09:57:15.593: DEBUG/libEGL(5212): egl.cfg not found, using default config
06-01 09:57:15.593: DEBUG/libEGL(5212): loaded /system/lib/egl/libGLES_android.so
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): FATAL EXCEPTION: GLThread 11
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): java.lang.IllegalArgumentException: No configs match configSpec
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)
На самом деле я просто хотел видеть, была ли ошибка, которая заставила Вас получить маленькое изображение от камеры даже при том, что EXTRA_OUTPUT был указан, исправлена в FroYo. К сожалению, я даже не добираюсь для тестирования его.
Кто-либо сталкивается с подобными проблемами?
Спасибо,
Steff
Похоже, есть несоответствие между EGLConfig, запрашиваемым камерой, и EGLConfigs, которые в настоящее время поддерживаются s/w GL рендерером, поставляемым в Froyo. Попробуйте запросить конфигурацию RGB565 EGL Config.
Более того, приведенные ниже изменения сработали для меня. Они в основном удаляют буфер Stencil из EGLConfig, так как эта конфигурация, похоже, вообще не поддерживается в s/w GL renderer в Froyo. Добавьте оригинальную конфигурацию обратно, если вы тестируете на реальных устройствах, таких как Droid.
diff --git a/src/com/android/camera/ui/GLRootView.java b/src/com/android/camera/ui/GLRootView.java
индекс d8ae0f8... 545c66a
--- a/src/com/android/camera/ui/GLRootView.java
+++ b/src/com/android/camera/ui/GLRootView.java
@@ -174,7 +174,8 @@ public class GLRootView extends GLSurfaceView
private void initialize() {
mFlags |= FLAG_INITIALIZED;
- setEGLConfigChooser(8, 8, 8, 8, 0, 4);
+ setEGLConfigChooser(8, 8, 8, 8, 0, 0);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
setZOrderOnTop(true);