Camera.getParameters (). GetSupportedPreviewSizes () возвращает значение NULL в эмуляторе - PullRequest
1 голос
/ 24 октября 2011

У меня проблема с версией камеры и Android.Я пытаюсь получить размер предварительного просмотра, поддерживаемый потоком Android-камеры, как показано ниже:

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // TODO Auto-generated method stub
    mCamera = Camera.open();
    mSupportedPreviewSizes = mCamera.getParameters()
            .getSupportedPreviewSizes();
    try {
        mCamera.setPreviewDisplay(holder);
    } catch (IOException exception) {
        mCamera.release();
        mCamera = null;
    }
}

Я пытаюсь проверить свой код на 2 версии Android с эмулятором (Android 2.2 SDK && Android 2.1 SDK) Конфигурация для обеих версий Androidв эмуляторе, как показано ниже:

Skin : HVGA
Abstracted LCD density : 160

Моя проблема: Когда я запускаю свои приложения на эмуляторе - 2.2 SDK: ОК - ХОРОШО, но когда я запускаю на эмуляторе - 2.1 SDK: есть проблема) .getSupportedPreviewSizes () возвращает NULL "

Если вы это знаете, пожалуйста, помогите мне!Спасибо очень очень очень .......... большое ....

Ответы [ 2 ]

2 голосов
/ 01 июня 2012

Это указывается Google как дефект, который, как я предполагаю, означает, что есть планы его исправить: http://code.google.com/p/android/issues/detail?id=6271

Я испытывал это на некоторых аппаратных устройствах под управлением Android вплоть до 4.0. Пока что единственное, что мне удалось сделать, - это обработать случай, когда getSupportedPreviewSizes () возвращает ноль. Это не всегда происходит для меня, поэтому я обычно уничтожаю и восстанавливаю свою поверхность предварительного просмотра и камеру, если обнаружу, что это произошло.

1 голос
/ 21 августа 2013

Вы должны вызвать getSupportedPreviewSizes () перед mCamera.unlock () и после mCamera.lock ()

...