AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi TCameraComponent unter Android unbrauchbar?
Thema durchsuchen
Ansicht
Themen-Optionen

TCameraComponent unter Android unbrauchbar?

Ein Thema von DelTurbo · begonnen am 13. Mai 2019 · letzter Beitrag vom 20. Mai 2019
Antwort Antwort
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

TCameraComponent unter Android unbrauchbar?

  Alt 13. Mai 2019, 15:01
Hallo,
ich habe ein Problem. Ich versuche unter Android an die Kamera zu kommen und einen QRCode zu lesen. Und zwar mache (versuche) ich das mi ZXing. Dort nehme ich z.b. die aTestApp aus der Directory Demo.

Es klappt auch eigentlich recht gut. Ich habe 3 Handy hier zum Testen. Leider 2x mit Android 8.0.0 womit man nicht debuggen kann. Es kommt immer Fehler: Can't open socket: Permission denied.
Nun habe ich leider mehrere Probleme.

1. Erzeuge ich es mit RIO, dann habe ich oft ein "grünes" Bild. Als wenn er "Müll" aus dem Framebuffer liest bzw. der Buffer garnicht bereit ist etwas auszulesen. Unter XE8 ist das nicht. (Alle Handys)
2. Lasse ich es auf einem schnelle Handy mit 2,47 GHz (Android 8.0.0.) laufen, stürzt die App nach ein paar Sekunden ab. Lasse ich es auf einem anderen langsameren Handy 1,56 GHz laufen (ebenfalls Android 8.0.0) stürz es nicht ab.
3. Erzeuge ich die Demo auf XE8 habe ich keinerlei Schwierigkeiten mit dem "grünen" Bild was ab und zu auftaucht.
4. Alle Versionen schmieren es auf dem schnellen Handy nach ein paar Sekunden ab. Mit Fehlermeldungen kann ich leider nicht dienen, da man es nicht Debuggen kann. Auf dem Handy erscheint nur das man es neu Starten kann.

Dann habe ich einfach eine Leere App erstellt und nur die Camera und ein Image drauf gepackt. Ohne ZXing. Das Bild wird auch in dem Image angezeigt, allerdings habe ich die gleichen Probleme wie oben beschrieben.

Ich habe mal ein einfaches Projekt was nur das Kamerabild anzeigt angehängt. Eventuell muss mal ihm noch die Berechtigung geben das die App auf die Kamera darf geben.

Ich hoffe mir kann jemand helfen. Mit dem "müll-bild" unter RIO könnte ich noch leben. Allerdings nicht das es nach ein Paar Sekunden auf einem schnellen Handy abschmiert.

Testumgebung:
Jeweils Windows 7 mit RIO bzw. XE8
Handys:
1x Samsung A3 (2017) (SM-A320FL), Android 8.0.0 (1,59 GHz, 8 Kerne)
1x HTC One (Läuft ohne Absturz), Android 5.0.2 (1,73 GHz 4 Kerne)
1x HTC U11, Android 8.0.0 (2,46 GHz 8 Kerne)
Laut Rückmeldung eines bekannten mit einem Huawei P20 Pro mit Android 9 ebenfalls Absturz.

Als Anhang ein einfaches Programm welches nur das Bild der Hinteren CAM anzeigt. Kann unter XE8 und RIO erstellt werden.

Ich hoffe ich habe genug angaben gemacht damit jemand Helfen kann.

Vielen dank im Voraus
Angehängte Dateien
Dateityp: zip CamTest.zip (6,2 KB, 7x aufgerufen)
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (13. Mai 2019 um 17:32 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TCamera unter Android unbrauchbar?

  Alt 13. Mai 2019, 15:14
Kennst Du ScannerMApp?
Markus Kinzler
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#3

AW: TCamera unter Android unbrauchbar?

  Alt 13. Mai 2019, 15:20
Ja habe ich auch probiert. Leider ist das auf den "normalen" Handys unerträglich langsam. Ich weiß nicht warum. Auch auf dem "schnellen" läuft es ebenfalls nicht sauber. Es dauert sehr lange bis ein Bild kommt. Und es schmiert ebenfalls ab.

Sorry das ich das nicht erwähnt hatte.

Das ist der Screenshot dazu.
Miniaturansicht angehängter Grafiken
screenshot_20190513-154207.jpg  
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (13. Mai 2019 um 15:45 Uhr)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#4

AW: TCamera unter Android unbrauchbar?

  Alt 13. Mai 2019, 17:31
Mit https://www.winsoft.sk/acamera.htm klappt es einwandfrei. Keine "defekten" Buffer, kein absturz. Die werden schon wissen das von Delphi das teil nicht richtig Funktioniert, denke ich.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.096 Beiträge
 
Delphi 12 Athens
 
#5

AW: TCameraComponent unter Android unbrauchbar?

  Alt 13. Mai 2019, 18:16
Zu deiner Demo-App: Versuch die mal im Thread zu synchronisieren


Delphi-Quellcode:
procedure TCameraComponentForm.CameraComponentSampleBufferReady(Sender: TObject; const ATime: TMediaTime);
begin
  TThread.Synchronize(TThread.CurrentThread, GetImage);
end;

procedure TCameraComponentForm.GetImage;
begin
  CameraComponent.SampleBufferToBitmap(imgCameraView.Bitmap, True);
end;
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#6

AW: TCameraComponent unter Android unbrauchbar?

  Alt 13. Mai 2019, 19:02
Hi,
ist das gleich. Bei RIO grüne Bilder und schmiert nach ein paar Sekunden ab. Übrigends so wird es auch in der ZXing-Demo gemacht, die ebenfalls grüne Frames anzeigt und abschmiert.

Das hier habe ich noch gefunden. Ich habe auch die Java Files erstellt, also alles angepasst. Aber damit habe ich leider kein Bild.
https://github.com/DelphiWorlds/Camera

Gruß
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#7

AW: TCameraComponent unter Android unbrauchbar?

  Alt 16. Mai 2019, 12:19
Hallo,
sorry wenn ich nochmal nachfrage. Aber ich hatte am Dienstag eine AugenOP (Grauerstar) und konnte nicht früher. Hat keiner einer Idee woran das liegt? Es kann doch nicht sein das neuere DelphiVersion schlechter ist. Das bezieht sich auf den grünen Frame. Ich hoffe ich habe alle ervorderlichen Daten im 1. Thread mitgegeben. Leider darf ich im moment max. 20 Minten an den PC (wegen dem lesen). Das heißt ich kann auch nicht weiter suchen.

Diese Camera-master bekomme ich nicht richtig ans laufen. Schon garnicht auf den Schnellen Handys. Auf dem HTC One läuft sie. Allerdings nicht wenn ich FCamera.CameraPosition := TDevicePosition.Front; in .Back ändere, das das die Hintere Cam genutzt wird.

Da ic nicht soviel lesen darf, würde ich morgen nochmal nach schauen ob jemand eine lösung hat.

Vielen dank für das verstandniss und eine eventuelle Antwort.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#8

AW: TCameraComponent unter Android unbrauchbar?

  Alt 17. Mai 2019, 12:01
Hallo!

@DelTurbo: Gute Besserung.

Ich kenne die TCameraComponent nicht, deshalb kann ich nur ein paar allgemeine Überlegungen anstellen.

1) Die Kameras moderner Mobiltelefone haben eine hohe Auflösung. Da fallen entsprechend viele Daten an. Ich würde versuchen, die Auflösung auf den kleinsten möglichen Wert zu stellen.

2) Für den QR Code wird nur ein kleiner Bildausschnitt benötigt. Der Benutzer muss die Kamera beim Scannen so halten, dass der QR Code nur in der oberen Hälfte des Bildausschnitts sichtbar ist. Dann kann man die Hälfte der Bildrohdaten vor der Auswertung wegschmeißen.

3) Wenn die Kamera mit 30 Bildern/Sekunde aufzeichnet, würde ich nicht jeden Frame auswerten. Es reicht bestimmt aus, 3 - 5 Frames/Sekunde auszuwerten.

Mit den Maßnahmen wird die Anzahl der Rohdaten deutlich reduziert. Vielleicht funktioniert es damit. Würde mich über ein kurzes Feedback freuen.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#9

AW: TCameraComponent unter Android unbrauchbar?

  Alt 17. Mai 2019, 17:30
Debug Tipp: Monitor.bat aus Android SDK starten. Ergibt einen log viewer. Mit log.d aus fmx.types selbst Meldungen ausgeben.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#10

AW: TCameraComponent unter Android unbrauchbar?

  Alt 20. Mai 2019, 13:24
Hi,
[OT]
erstmal sorry für die späte antwort. Ich darf zwar eigentlich immer noch nicht lesen, aber ich habe heute noch einen Augenartz Termin wo geklärt wird ob ich mit einem "Übergangsglas" in der Brille 2 Stunden vor den PC darf.
[/OT]

Lassen wir das mit der QR erkennunt mal aussen vor.
Nun mal zu Delphi RIO. Ich kann nicht verstehen warum auf dem gleichen Handy meine Demo die im 1. Post ist, auf XE8 ohne falsche Frame läuft. Mit RIO habe ich immer diese Grünen Frames.

Zu deiner Idee mit z.b. jedem 4. Frame auswerten. Das ist in der ZXing Demo (aTestApp) schon eingebaut. Die einzige Componente die überall läuft ist die von WinSoft. Keine Grüne Frames (auf allen Handys) und läuft auf dem "schnellen" Handy ohne absturtz. Ich glaube fast man muss das bei WinSoft kaufen damit man mit der Kamera "arbeiten" kann. Was ich etwas schade finde.

Trotzdem bleibt bei mir ein schlechter beigeschmack. Warum ist die neuere Delphi (RIO) Version in diesem Punkt schlechter als XE8??? Warum muss man bei RIO etwas nachkaufen was bei XE8 Funktioniert.
Naja, das ist nur meine meinung. Da ich im moment nur etwas mit dem Kamera machen möchte, kann ich natürlich beurteilen ob sich andere sachen gebessert haben.

Trotzdem vielen dank an alle die versucht haben zu Helfen. Aber ich glaube es gibt Relativ wenig leute die mit Delphi AndroidApps schreiben.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz