Предварительный просмотр камеры на HTC Hero - PullRequest
0 голосов
/ 25 марта 2012

Если я запускаю эту демонстрацию на HTC Hero (CyanogenMod 6.1.0), я получаю исключение RuntimeException от метода Camera.startPreview ().

Похоже, что та же проблема описана здесь:

Камера Android не будет работать.startPreview терпит неудачу

Другими словами, вам нужно переключать ширину и высоту вокруг при установке размера предварительного просмотра.В самом деле, это работает, но затем нарушило бы демонстрацию на других устройствах.

Теперь я понимаю, что цель демонстрации состоит в том, чтобы показать, как запустить предварительный просмотр камеры (и, таким образом, эта проблема выходит за рамки).но мне интересно, есть ли чистый обходной путь для этого, так как я не хочу вставлять логику стиля «если HTC_HERO» в мой код (во всяком случае, я уверен, что другие устройства будут иметь подобное поведение)?

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

1 Ответ

1 голос
/ 25 марта 2012

Я не хочу помещать логику стиля «если HTC_HERO» в мой код (в любом случае, я уверен, что другие устройства будут иметь подобное поведение)?

В некоторой степени это неизбежно, если вы пытаетесь подключиться к 100% устройств, работающих на 100% произвольных модов ПЗУ, потому что ошибок будет много.

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

Теоретически, должен быть некоторый универсальный код размера предварительного просмотра, который определяет правильный размер и соответственно настраивает SurfaceView. Если код приложения камеры AOSP является какой-либо индикацией, этот код будет массивным, и он все равно вряд ли будет работать везде (например, некондиционные устройства или моды ПЗУ, нарушающие любые предположения, которые рассматривали авторы «универсального» решения).

Возможно, вы захотите изучить проекты, такие как сканер штрих-кода ZXing, и посмотреть, как они подходят к проблеме.

...