Освобождение объекта камеры Android не работает на некоторых устройствах - PullRequest
0 голосов
/ 22 марта 2011

Я работаю с Android Camera API.Я занимаюсь разработкой приложения для фотографирования, и сразу после съемки хочу выпустить камеру.Но камера не выпускается на некоторых устройствах, таких как ericson, xperia и некоторых других.

Ответы [ 2 ]

0 голосов
/ 24 марта 2011

Чтобы заставить его работать, мне нужно было разблокировать камеру только в методе surfaceDestroyed(), в деятельности которого реализуется SurfaceHolder.Callback.

@Override public void surfaceDestroyed(SurfaceHolder holder){
    camera.release();
    hasSurface = false;
}

Поскольку в некоторых устройствах освобождение аппаратных ресурсов является медленным процессом, который может повлиять на немедленную обработку.Отпустите камеру в surfaceDestroyed(), чтобы предварительный просмотр поверхности был остановлен / уничтожен, а затем мы можем освободить камеру.

0 голосов
/ 22 марта 2011

Если вы используете MediaStore.ACTION_IMAGE_CAPTURE, тогда камера позаботится о себе, пока вы определите onActivityResult (int requestCode, int resultCode, Intent data).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...