2010-01-28 2 views
3

Android SDK имеет демо-версию API для предварительного просмотра камеры. Однако это дает мне исключение во время выполнения в эмуляторе. Я бегу с Eclipse, на Mac с 10,6Android SDK Camera Demo Crashes

Вот ссылка, где я взял код:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html

+1

Каждый раз, когда вы задаете вопрос о StackOverflow относительно «исключения времени выполнения», это было бы * огромной * помощью, если бы вы разместили трассировку стека. С этим мы можем помочь. Без этого мы должны принимать случайные догадки. Вы можете посмотреть трассировку стека с помощью 'adb logcat', DDMS или перспективы DDMS в Eclipse. – CommonsWare

ответ

7

Убедитесь, что вы установили разрешения в файле AndroidManifest.xml для использования камеры. Поместите эту строку над тегом приложения.

<uses-permission android:name="android.permission.CAMERA" /> 
+0

спасибо за кучу, я бы хотел, чтобы они упомянули об этом в демо-коде. – James

+2

Сбой просмотра камеры для меня без какой-либо полезной информации, даже в отладчике, при работе на самом устройстве Nexus One. Линия использования-разрешения уже находится в манифесте. –

+0

такой же здесь, как corey – sami

0

Относительно аварии NexusOne.

Одно из решений я нашел на этот вопрос просто изменяя требуемый размер предварительного просмотра в CameraPreview

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h){..} 

заменить эту строку:

parameters.setPreviewSize(w,h); 

с

parameters.setPreviewSize(352,288); 

Это разрешение это юридическое разрешение, с которым работает Dev1D G1.

4

У меня есть вещи для работы с моим Nexus One.

Если вы пытаетесь написать приложение «Камера», демонстрационное приложение API не будет достаточно для справки. Скачать исходный код для самого приложения Android Камеры:

https://android.googlesource.com/platform/packages/apps/Camera

Что касается вашего вопроса, то, что вы узнаете, что вам нужно будет ограничить ваше приложение в режим альбомного в манифесте. В SurfaceChanged просто вызовите startPreview. Не устанавливайте размер предварительного просмотра вообще.

0

Вы можете использовать

List<Camera.Size> getSupportedPreviewSizes()

И выбрать размер из списка

0

Этот вопрос также упоминается в Google Code Android defects, и это может быть полезно для вас, код, упомянутый в нижней части в один из комментариев, как возможное решение для решения проблем предварительного просмотра.