Я создал действие с функциональностью дополненной реальности. Частично это должно отображать камеру телефона в фоновом режиме (это SurfaceView в макете Activity).
в действии onCreate () метод, который я делаю:
surfaceHolder = surfaceView.getHolder();
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceHolder.addCallback(this);
Мои обратные вызовы:
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
camera = Camera.open();
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(holder);
} catch (Exception e) {
// e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
camera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
}
Прямо сейчас, когда я закрываю свое приложение (оставляя его в фоновом режиме), приложение Камера не работает, потому что Камера все еще заблокирована внутри моего приложения.
Как реализовать методы onResume () onPause () для блокировки / разблокировки камеры?
Кроме того, если оставить камеру заблокированной в приложении, она займет около 5% процессорного времени в Galaxy S, а после того, как я вернусь к своему приложению, при попытке camera.startPreview ();
Помощь!