Это мой первый использование с разработчика камеры на Android, и я испытал CameraDemo, что у меня есть найти по ссылке https://thenewcircle.com/s/post/39/using__the_camera_apiРабочий пример камеры API?
Но у меня есть Somes проблемы с этим кодом :(
Во-первых, это представляется необходимым добавьте эту строку в код Preview (контексте Context)
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
(крах программы, если я не добавить этот тест)
как раз перед этой линией
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
потому что вызов SetType(), как представляется, в настоящее время осуждается (то есть, что сказать мне Android-студия)
Во-вторых, это представляется необходимым прокомментировать camera.setParameters() вызов в SurfaceChanged (держатель SurfaceHolder, внутр формат, Int W, внутр ч) код
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 = camera.getParameters();
parameters.setPreviewSize(w, h);
// camera.setParameters(parameters);
camera.startPreview();
(это крах, если эта линия раскомментирована)
Теперь, этот пример не врезаться при запуске на мои Android устройства и я могу видеть камеры предварительного просмотра :)
Но врезаться теперь, когда я поворачиваю экран :(
=> что это метод, который обрабатывать поворот экрана во время просмотра камеры?
(с camera.setParameters (параметры) кажутся устаревшими ...)
EDIT: это теперь частично решена :)
У меня сделать это небольшое преобразование:
добавить логическое переменная mPreviewRunning, которая инициализируется значением false в начале
добавить вызов camera.stopPreview(), когда эта переменная уже установлена в значение
установите эту переменную в true сразу после вызова camera.startPreview();
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
// ERROR : setParameter() is deprecated
// Camera.Parameters parameters = camera.getParameters();
// parameters.setPreviewSize(w, h);
// camera.setParameters(parameters);
if(bPreviewRunning == true)
{
bPreviewRunning = false;
camera.stopPreview();
}
camera.startPreview();
bPreviewRunning = true;
}
Но крах приложения hovewer иногда, но я не понимаю, почему :(
(и предварительный просмотр на плохой ориентации, когда в портретном режиме)
Вы должны рассмотреть вопрос об обращении один вопрос в то время, и фокусируя свою энергию на полностью описывающее его. Когда у вас есть несколько вопросов, вы можете открыть несколько вопросов в StackOverflow. –
Я хочу только иметь рабочий пример :) => как изменить ориентацию предварительного просмотра при изменении ориентации устройства ??? – user3161997
: только для добавления android: configChanges = "ориентация" в манифест :) – user3161997