Перейти к содержанию
Fire Monkey от А до Я

Pax Beach

Пользователи
  • Постов

    414
  • Зарегистрирован

  • Посещение

  • Победитель дней

    12

Сообщения, опубликованные Pax Beach

  1. 4 часа назад, MikeWuzHere сказал:

    Создал local сервис, для начала решил просто промониторить его включение, в AndroidServiceStartCommand добавил:

    В процессах сервис висит, но реакции от телефона никакой.. в чем проблема? уже замучался, то с таймером проблема, переписал со sleep() и while, дык опять реакции ноль. Может на русском где мануалы есть доступные?

    Пример работы таймера в сервисе.

  2. Спойлер

    2015_10_06_18_10_49_6d3c863bae8d7b38a3f25914747f30b8[1].jpg

     

    Создание Android приложений с NDK R13

    Не мог смириться с суевериями ), и решил сам проверить. Delphi не дружит с линкером (компоновщиком) версии 4.9, а с 4.8 дружит нормально.

    Все остальное на вкладке NDK использую из последнего релиза.

    С сегодняшнего дня, я живу вот так:

     

    2016-10-24_01-33-49.png

     

    PS: Интересно, если компоновщик брать из каталога другой архитектуры, приложения заработают корректно на устройствах с Intel?

     

  3. Обещал вам продемонстрировать возможность записи видео в Android.

    Представляю решение с исходными кодами (VideoRecord.zip) для изучения этой возможности и использования в своих проектах.

    На представленном снимке есть 2 главных кнопки: "Modal Intent Record" и "Native Record".

    Screenshot_20161021-172114.png

     

    Modal Intent Record — удобно использовать в приложениях, потому что запись ведется приложением камеры, поставляемым с телефоном. После съемки в приложение возвращается сообщение о результатах — удачно/неудачно.

    Native Record — метод на базе интерфейса JMediaRecorder, используется, когда Intent Record не подходит. Например в Local Android сервисе ;-)

    Пользуйтесь на здоровье.

     

    Большая просьба к сообществу — помочь в комментариях с подбором оптимальных параметров записи видео в JMediaRecorder. Установленные сейчас параметры 640х480, и качество видео хромает.

    Нужно научиться переключать камеры, менять степень сжатия, включать/выключать вспышку, звук затвора.

     

    Здесь люди уже подбирали варианты параметров, но нужно протестировать на приложении из RAD Studio.

    На ресурсе разработчиков Android тема по JMediaRecorder находится здесь.

     

  4. 42 минуты назад, ZuBy сказал:

    Поделитесь на форуме, тема очень интересная

    Я знал, что вы спросите )

    Еще разбираюсь с некоторыми параметрами.

    Пусть побудет интрига, часа через 4 закончу с делами, создам отдельный топик по этому поводу, все расскажу.

     

    UPD:

    Собственно, если не терпится узнать, все написано здесь.

  5. 2 часа назад, Rusland сказал:

    Нет смысла спрашивать у человека, который задал единственный вопрос на форме и больше не появлялся )

    Хотя меня тоже интересует тема записи видео в Android :)

    А что именно интересует?

    Я сделал тестовое приложение Android — пишет голос и видео, двумя вариантами камерой телефона и нативным MediaRecorder, без торможения и с хорошим FPS.

    Пробую сейчас в сервис это запихать )

     

  6. 14 часов назад, MikeWuzHere сказал:

    И снова я к Вам за советом, господа. Задачка: пользователь кидает телефон в карман и в фоновом режиме программа сама проверяет каждые секунд 15 наличие новой строки в стринглисте, который цепляется с файла и пытается отправить http запрос. Как мне до этого подсказали копать надо в сторону сервисов. Что же, начал: создал сервис, прицепил к приложению, кинул на него таймер и http от indy, написал кучу кода. Как итог - сервис виден в процессах но таймер не срабатывает и ничего не происходит (запускаю приложение, что бы запустить сервис, выхожу из него и жду проверяя данные на сервере). Но происходит совсем ничего. Туда ли я вообще полез или это нужно реализовывать как то иначе? Стоит local сервис, может проблема в этом? Ниже в темах писали что таймер не работает или еще что, при компиляции ничего не ругается, хотя условий там море и т.д. Все данные которые мне нужно отправить цепляются из текстовых файлов и далее в TStringList..  Понятное дело что такой сервис будет жрать батарейку и кучу трафика, но они так и так тратятся пользователем в "ручном" режиме :(

    Не надо вообще таймер делать для этого. И вообще, никогда таймеры не надо делать, когда можно без них обойтись. Вам в данной задаче надо работать по событиям.

    Каждый раз, когда пользователь сделал изменение в стринглисте, вы проверяете, прошло ли с момента последней отправки 15 секунд, а можно и без проверки. Далее вызов startService, с переданными в метод текстом. Сервис стартует с командой отправить переданный текст, отправляет его.

    Для этой задачи я бы использовал IntentService, а не LocalService — соответственно не startService, а bindService.

     

  7. В 14.07.2014 в 16:45, kolyalyan сказал:

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

    Для подключения к камере использую следующий код:
     

    
    procedure TForm1.FormShow(Sender: TObject);
    var 
       CDM : TCaptureDeviceManager;
       VC : TVideoCaptureDevice;
    
    begin
       CDM := TCaptureDeviceManager.Current;
       VC := CDM.DefaultVideoCaptureDevice; 
       if (VC <> nil) then VC.OnSampleBufferReady := VideoBufferReady;
    
       VC.StartCapture;
    end;

    Для загрузки кадров в TImage этот:
     

    
    procedure TForml.VideoBufferReady(Sender: TObject; const ATime: int64); 
    var 
       VCD : TVideoCaptureDevice; 
    
    begin
       VCD := Sender as TVideoCaptureDevice;
       VCD.SampleBufferToBitmap(Image1.Bitmap, True);
    end;

    Ещё раз повторюсь, что всё работает, но чрезвычайно медленно. Пробовал стандартный компонент TCameraComponent, но он работает также или даже ещё медленнее.

    Замеры делали в отладчик? На каком методе потери идут?

  8. 1 час назад, MikeWuzHere сказал:

    Подскажите, куда здесь влепить свою функцию?) 

    В WaitComplete правильно понимаю? И как можно из своей функции стартовать таймер и отключать его при прохождении интервала? :/

    Так есть же пример выше

  9. 2 минуты назад, ZuBy сказал:

    ну тут вы не правы, он прекрасно ориентируется в сети

    и значок что есть подключение вайфай, а потока в нем нет, об этом знает

    Расскажи пожалуйста подробнее.

    Кто он? Каким методом получить информацию, что интернет на момент выполнения метода был на устройстве?

     

  10. 13 часов назад, MAD_EVAL сказал:

    У Андрея Ефимова есть решение. http://delphifmandroid.blogspot.com/2013/12/delphi-xe5.html

    Это решение — хорошее, но оно не позволяет решить задачу сабжа.

    Чтобы узнать, есть ли интернет, нужно пробовать получить ответ от какого-либо хоста из интернета.

     

  11. 10 часов назад, Прикладной сказал:

    Тоже столкнулся с такой ошибкой при компиляции проекта. SDK ставил 25.2.2

    На XE 10 все сталкиваются с этой ошибкой?

    Кстати, поможет ли исправление ошибки, если установить отдельно SDK ? Сейчас проверим :)

    Не могу сейчас найти. Хотите — верьте, хотите — проверьте, на прошлой неделе, буквально, читал во глубинах developer.android.com, что SDK 23 пока самый работоспособный релиз. Наверное имелся ввиду 23.3, этой версией пользуюсь.

    С более поздними версиями были аналогичные проблемы, описанные в топике.

     

  12. В 10.10.2016 в 12:15, sviat сказал:

    Привет. Вопрос такой: какие существуют методы шифрования текста или файлов в делфи? В интернете куча примеров шифрования, но то в одном не шифруются символы юникода, то вроде все шифруется но расшифровать не может, то не работает на мобильных ОС. 

    Для каких задач нужно шифрование?

    Если нужно шифровать текст для передачи по сети, то с этим справятся DataSnap и Indy.

    А если файлы шифровать, и чтобы работало на всех платформах, возьмите открытый код стандартных методов шифрования AES, RSA, DES и т.п. Например, здесь, и используйте в своем проекте.

    Конечно, давно пора это дело причесать под XE и Berlin и выложить для сообщества. Только не забываете про различие UNIX и Windows нумерации символов в String.

     

  13. 12 часов назад, Makaroff сказал:

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

    Для Java существует класс PowerManager, но в JNI такого я не нашел.

    Подскажите пожалуйста решение.

    Просьба выложить для всех пример кода решения для перезагрузки телефона.

    Были грабли с использованием? Какие пермишены потребовались?

     

×
×
  • Создать...