Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
#1

Работа с камерой - Android

03.03.2016, 18:21. Просмотров 582. Ответов 20
Метки нет (Все метки)

Имеется код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.mytest;
import android.os.*;
import android.view.*;
import android.app.*;
import android.hardware.*;
import java.io.*;
import java.text.*;
import java.util.*;
 
 
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
 
        final Camera c = Camera.open();
     //   Log.i("===", "" + c);
 
       /* findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {*/
 
                    c.takePicture(null, null, mPicture);
 
                /*}
            });*/
    }
 
    private Camera.PictureCallback mPicture = new Camera.PictureCallback() {
 
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
 
            File pictureFile = getOutputMediaFile();
 
            try {
                FileOutputStream fos = new FileOutputStream(pictureFile);
                fos.write(data);
                fos.close();
            } catch (FileNotFoundException e) {
              //  Log.d("===", "File not found: " + e.getMessage());
            } catch (IOException e) {
               // Log.d("===", "Error accessing file: " + e.getMessage());
            }
        }
    };
 
    private static File getOutputMediaFile() {
        File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                                            Environment.DIRECTORY_PICTURES), "MyCameraApp");
 
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
                             "IMG_" + timeStamp + ".jpg");
        return mediaFile;
    }
}
При попытке запустить программу - вылет. Что может быть не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2013 / 1755 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
03.03.2016, 18:24     Работа с камерой #2
без сообщения об ошибке будем гадать?
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 18:35  [ТС]     Работа с камерой #3
log.zip
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 19:13  [ТС]     Работа с камерой #4
Паблито, я смотрел не одну статью, везде вылет... Нашел ваш пост - тоже вылетает...

Добавлено через 32 минуты
Паблито, очень интересно. Код не работает на андроид 5.0+, а на 4.4 и 4.2 он работает. С чем это может быть связано?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
03.03.2016, 19:16     Работа с камерой #5
Цитата Сообщение от den_droid Посмотреть сообщение
Код не работает на андроид 5.0+, а на 4.4 и 4.2 он работает.
Уха-ха
Я как-то тоже писал код, работал на 2, 4 и 5 версиях без проблем.
На 5 версии работа с камерой чуток поменялась, появились другие классы, может быть, разрешения.
Кстати, какое у вас устройство?
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 19:31  [ТС]     Работа с камерой #6
CoolMind, Nexus 7... Android 6.0.1. Я так и не понял как к камере подключиться(
Паблито
2013 / 1755 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
03.03.2016, 19:34     Работа с камерой #7
проверил у себя на самсунге 5.0.2 версия - работает
разрешения в манифесте прописаны?
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 19:35  [ТС]     Работа с камерой #8
Паблито,
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.camera" />
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
03.03.2016, 19:37     Работа с камерой #9
den_droid, отличное устройство!
А может быть, на какой-то конкретной строке ломается?
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 19:44  [ТС]     Работа с камерой #10
CoolMind, как я понял, на
c.takePicture(null, null, mPicture);

Добавлено через 3 минуты
CoolMind, эх, не судьба мне научиться работать с камерой
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
03.03.2016, 19:49     Работа с камерой #11
den_droid, может быть, c = null? Там есть лог ошибки?
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 19:55  [ТС]     Работа с камерой #12
CoolMind, лог ошибки выше

Добавлено через 5 минут
CoolMind, как это исправить?
03-03 17:29:44.290 9326 9326 E AndroidRuntime Caused by: java.lang.RuntimeException: takePicture failed
03-03 17:29:44.290 9326 9326 E AndroidRuntime at android.hardware.Camera.native_takePicture(Native Method)
03-03 17:29:44.290 9326 9326 E AndroidRuntime at android.hardware.Camera.takePicture(Camera.java:1434)
03-03 17:29:44.290 9326 9326 E AndroidRuntime at android.hardware.Camera.takePicture(Camera.java:1379)
03-03 17:29:44.290 9326 9326 E AndroidRuntime at com.dendroid.json.MainActivity.onCreate(MainActivity.java:26)
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
03.03.2016, 19:59     Работа с камерой #13
den_droid, в общем, я мельком поглядел пару ссылок, например, http://stackoverflow.com/questions/2...picture-failed. Там говорится про startPreview. Также в onPictureTaken возможны проблемы, связанные с освобождением камеры и прочими проблемами. Попробуйте тоже поискать.
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 20:07  [ТС]     Работа с камерой #14
CoolMind, тоже вылет. Паблито давал тот код который я написал выше, у меня он не работает, у него рабоатет...

Добавлено через 22 секунды
+ я скачивал исходники других проектов, тоже вылетают.
Паблито
2013 / 1755 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
03.03.2016, 20:08     Работа с камерой #15
а если перезагрузить телефон?
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 20:15  [ТС]     Работа с камерой #16
Паблито, эффект тот же. Что за камера...

Добавлено через 4 минуты
Паблито, если Вам не тяжело, можете ли вы дать мне исходник вашего рабочего проекта с камерой? Интересно, что если и он не будет работать. На вашем то самсунге с 5.0.2 на борту все работает.
Паблито
2013 / 1755 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
03.03.2016, 20:22     Работа с камерой #17
стоп, стоп )
я просто скопировал этот код из первого сообщения и вставил в onCreate активити над которой провожу эксперименты
(разрешения у меня были давно прописаны еще с поршлых тестов)

и у меня этот код не выдал ошибок, я не делал SurfaceView и c.startPreview()
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 20:26  [ТС]     Работа с камерой #18
Паблито, блин, тогда почему у меня вылетает? ;(
Паблито
2013 / 1755 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
03.03.2016, 20:35     Работа с камерой #19
просто интересно, если все там закоментировать и вывести в лог Camera.getNumberOfCameras()
будет число больше нуля или нет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2016, 20:48     Работа с камерой
Еще ссылки по теме:

Работа с камерой и NDK Android
Управление камерой на OS Android Android
Съемка камерой в фоновом режиме Android
Потоки при работе с камерой Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 179
03.03.2016, 20:48  [ТС]     Работа с камерой #20
Паблито, 2

Добавлено через 2 минуты
Паблито, ошибка на takePhoto()
Yandex
Объявления
03.03.2016, 20:48     Работа с камерой
Ответ Создать тему
Опции темы

Текущее время: 10:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru