2014-01-09 4 views
0

Это мой первый использование с разработчика камеры на 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 иногда, но я не понимаю, почему :(
(и предварительный просмотр на плохой ориентации, когда в портретном режиме)

+0

Вы должны рассмотреть вопрос об обращении один вопрос в то время, и фокусируя свою энергию на полностью описывающее его. Когда у вас есть несколько вопросов, вы можете открыть несколько вопросов в StackOverflow. –

+0

Я хочу только иметь рабочий пример :) => как изменить ориентацию предварительного просмотра при изменении ориентации устройства ??? – user3161997

+0

: только для добавления android: configChanges = "ориентация" в манифест :) – user3161997

ответ

-1

Вот несколько примеры:

https://stackoverflow.com/a/19312182/192373
https://stackoverflow.com/a/20883662/192373
https://stackoverflow.com/a/19599599/192373

Выберите тот, который соответствует вашим потребностям (изменение ориентации камеры или фиксация активности или что-то еще).

+0

Android Studio - это настоящий кошмар, потому что это было слишком интенсивно с CPU :( – user3161997

+0

Я тестирую, чтобы найти что-то, что может непосредственно работать в командной строке. – user3161997

+0

Это день против ночи, когда я напрямую использую команды командной строки вместо Eclipse или Android Studio => это нормально, поскольку они тратят столько же энергии на этапе компиляции, и/или существуют какие-то варианты в них, поскольку они могут сэкономить ** большая партия ** процессорного времени, которое они потребляют на фазе компиляции ??? – user3161997

0

Здесь Google официальный пример для камеры API 2:

https://github.com/googlesamples/android-Camera2Basic

Новая библиотека разработки инженеров Google, чтобы помочь вам легко поддерживать камеры API 1 и API камеры 2 (быть в курсе, что еще не полностью стабильной , и это не официальный пример):

https://github.com/google/cameraview

Смежные вопросы