Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FMX Android Barkod Scanner - [ÇÖZÜLDÜ]
#1
Merhabalar,
daha önce formu bu konuda baya araştırdım. hatta tüm yöntemlere de baktım benzer konular açılmış ama çözüm yolu ya bulunmuyor ya da sunulan çözümlerden de neticeye varamadım 
kütüphane olarak Zxing kullanıyorum . Önce TCameracontrol  bileşeni ile denedim inanılmaz yavaş çalışıyor. Video kalitesini Mediuma düşürmeme rağmen  yani ortalama bir barkodu okutmak neredeyse 7-8 saniyeyi buluyor focuslanma süresiyle beraber. Bunuın dışında Barcode scanner uygulaması ile birlikte kullanı sğlamaya çalışıyorum o güzel okutor ama onda da şöyle bir sıkıntı var okunan barkodu Edit ya da başka bir yere  yapıştırmak için illaki bir nesneyi etkileşime geçirmek gerekiyor. otomatize etmeye çalıştım ama olmadı her seferinde tıklama zorunluluğu oluyor. Malum çoklu barkod okunacak işlemlerde bu şekilde çalışmak imkansız bu konuda yardımalrınızı rica ediyorum. Timer ile de thread ile de otoamtize etmeye çalıştım olmuyor   Bu arada kodları aşağıya bırakıyorum. Aşağıda da görüleceği üzere cornerbutton3 tıklamadan yapıştırma işlemini gerçekleştirmiyor 

procedure TForm1.GetBarcode;
var
 intent: JIntent;
 ClipboardService: IFMXClipboardService;
 ClipboardText: string;
begin
  Edit1.Text := '';
   intent := TJIntent.Create;
  intent.setAction(stringtojstring('com.google.zxing.client.android.SCAN'));
  intent.putExtra(tjintent.JavaClass.EXTRA_TEXT, stringtojstring('SCAN_MODE,PRODUCT_MODE'));
  //intent.setType(StringToJString('text/plain'));
 SharedActivity.startActivityForResult(intent, 0);


 if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(ClipboardService)) then
 begin

   ClipboardText := ClipboardService.GetClipboard.ToString;


   Edit1.Text := ClipboardText;
   Edit1.PasteFromClipboard;
 end;

 Timer1.Enabled:=True;
end;

procedure TForm1.CornerButton2Click(Sender: TObject);
begin
GetBarcode;
end;

procedure TForm1.CornerButton3Click(Sender: TObject);
begin
Edit1.Text:='';
Edit1.PasteFromClipboard;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 if not TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(ClipService)) then
   ClipService := nil;Elapsed := 0

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Timer1.Enabled := False;
 TThread.ForceQueue(nil,
   procedure
   begin
     CornerButton3Click(nil);
   end
 );
end;
Cevapla
#2
Hocam bu örneğinizde ki kullanım için ZXing uygulamasını da kurmanız gerekmekte. ÜStelık sadece android var. IOS yok.

Fakat Zxing kütüphanelerini kullanarak okuma yaparsanız artık zxing uygulamasına gerek kalmaz. Ayrıca tek kod ile hem android hemde IOS kullanabilirsiniz.

https://github.com/flrizzato/coding/blob...inForm.pas

Fakat IOS un okuması, kameradaki yapay  zekadan mıdır nedir.. bazen saçmalayabiliyor. yani ekran düz iken yan çevirebiliyor. Buna çare bulan lütfen buraya yazsın Smile)
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#3
@Mesut,
Emsallerine göre (ücretli olanlar da dahil olmak üzere) ZXing barcode ve QRCode okuma konusunda çok başarılı, belkide en iyisidir. 
Bitme aşamasına gelen bir uygulamamdan alıntı:




Oldukça hızlı değil mi?
Begin : = end / 2;
Cevapla
#4
(07-11-2023, Saat: 13:30)RAD Coder Adlı Kullanıcıdan Alıntı: @Mesut,
Emsallerine göre (ücretli olanlar da dahil olmak üzere) ZXing barcode ve QRCode okuma konusunda çok başarılı, belkide en iyisidir. 
Bitme aşamasına gelen bir uygulamamdan alıntı:




Oldukça hızlı değil mi?

ÜStadım bende Zxing lib kullanıyorum ama Tcameracontrol componenti ile yapmaya kalkıştığımda çok kasıyor diğer alternatif olan Zxing Barcode Scanner uygulaması ile kullanmaya kalktığımda da panoya kopyaladığım veriyi otomatie bir şekilde past edemiyorum. Siz Cameracontrol bileşeni ile yaptınız sanırım
Cevapla
#5
CameraComponent bileşeni ile yaptım. 
Aşağıdaki konfigürasyonları kullanıyorum. 

  FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, nil);
 CameraComponent1.Quality := FMX.Media.TVideoCaptureQuality.MediumQuality;
 CameraComponent1.CaptureSettingPriority := TVideoCaptureSettingPriority.FrameRate;
 CameraComponent1.GetCaptureSetting.FrameRate := 42;
 CameraComponent1.FocusMode := FMX.Media.TFocusMode.ContinuousAutoFocus;

CameraComponent bileşeni Android platformunda oldukça yavaş kalıyor. Bu sorun iOS tarafında yok. iOS platformunda oldukça hızlı. 
CameraComponent yerine harici bir kamera bileşeni de kullanabilirsiniz. 

İncelediklerim arasında Media Suite for FireMonkey oldukça hızlıydı. Bunu da aşağıdaki projede kullanmıştım (ZXing + Media Suite for FireMonkey). 



Begin : = end / 2;
Cevapla
#6
(07-11-2023, Saat: 13:46)RAD Coder Adlı Kullanıcıdan Alıntı: CameraComponent bileşeni ile yaptım. 
Aşağıdaki konfigürasyonları kullanıyorum. 

  FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, nil);
 CameraComponent1.Quality := FMX.Media.TVideoCaptureQuality.MediumQuality;
 CameraComponent1.CaptureSettingPriority := TVideoCaptureSettingPriority.FrameRate;
 CameraComponent1.GetCaptureSetting.FrameRate := 42;
 CameraComponent1.FocusMode := FMX.Media.TFocusMode.ContinuousAutoFocus;

CameraComponent bileşeni Android platformunda oldukça yavaş kalıyor. Bu sorun iOS tarafında yok. iOS platformunda oldukça hızlı. 
CameraComponent yerine harici bir kamera bileşeni de kullanabilirsiniz. 

İncelediklerim arasında Media Suite for FireMonkey oldukça hızlıydı. Bunu da aşağıdaki projede kullanmıştım (ZXing + Media Suite for FireMonkey). 



Bende benzer şekilde kullanıyorum dediğiniz gibi cameraControl yetersiz yavaş kalıyor android için uygulama geliştiriyorum
Cevapla
#7
(06-11-2023, Saat: 21:36)mcuyan Adlı Kullanıcıdan Alıntı: Hocam bu örneğinizde ki kullanım için ZXing uygulamasını da kurmanız gerekmekte. ÜStelık sadece android var. IOS yok.

Fakat Zxing kütüphanelerini kullanarak okuma yaparsanız artık zxing uygulamasına gerek kalmaz. Ayrıca tek kod ile hem android hemde IOS kullanabilirsiniz.

https://github.com/flrizzato/coding/blob...inForm.pas

Fakat IOS un okuması, kameradaki yapay  zekadan mıdır nedir.. bazen saçmalayabiliyor. yani ekran düz iken yan çevirebiliyor. Buna çare bulan lütfen buraya yazsın Smile)

Hocam teşekkür ederim,
Her ne kadar LgXhdpiPh.fmx dosyasını içeri aktaramamışta olsam genel anlamda çalışan veriyi almayı başardım 
camera control güzel hılzı da çalışıyor
lakin aduiomanager ses işlevi de sanırım çalışmıyor ses gelmiyor

(06-11-2023, Saat: 21:36)mcuyan Adlı Kullanıcıdan Alıntı: Hocam bu örneğinizde ki kullanım için ZXing uygulamasını da kurmanız gerekmekte. ÜStelık sadece android var. IOS yok.

Fakat Zxing kütüphanelerini kullanarak okuma yaparsanız artık zxing uygulamasına gerek kalmaz. Ayrıca tek kod ile hem android hemde IOS kullanabilirsiniz.

https://github.com/flrizzato/coding/blob...inForm.pas

Fakat IOS un okuması, kameradaki yapay  zekadan mıdır nedir.. bazen saçmalayabiliyor. yani ekran düz iken yan çevirebiliyor. Buna çare bulan lütfen buraya yazsın Smile)

REsources klasörünü ana dizinime koyup Ok.waw dosyasını içine ekledim ama sanırım ya yolda bir hata yapıyorum yada başka bir durum var 
barkodu okuyorum ama sesi alamıyorum
Cevapla
#8
@RAD Coder hocam bişeyi anlamadım. Ben Zxing kullanarak ean13 okutuyorum. Android gayet iyi ve hızlı fakat IOS da ciddi problemler yaşıyorum. Winsoft ile yazıştım. fakat bana kullanılabilir bi örnek gönderemediler. Yani örneği sıkıntılı idi. yoksa satın alacaktım.

Siz winsoft ve zxing i karışık mı kullanıyorsunuz?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#9
Geliştirici şöyle demiş;

"The standard camera component is, I think too slow for Android and IOS. You need to find a third party product or cook your own for a smooth experience. From Delphi 11 the standard camera component seems much improved."
"Standart kamera bileşeninin Android ve IOS için çok yavaş olduğunu düşünüyorum. Sorunsuz bir deneyim için üçüncü taraf bir ürün bulmanız veya kendinizinkini *pişirmeniz* gerekir. Delphi 11'den itibaren standart kamera bileşeni çok daha gelişmiş görünüyor."
Cevapla
#10
(07-11-2023, Saat: 22:27)mcuyan Adlı Kullanıcıdan Alıntı: @RAD Coder hocam bişeyi anlamadım. Ben Zxing kullanarak ean13 okutuyorum. Android gayet iyi ve hızlı fakat IOS da ciddi problemler yaşıyorum. Winsoft ile yazıştım. fakat bana kullanılabilir bi örnek gönderemediler. Yani örneği sıkıntılı idi. yoksa satın alacaktım.

Siz winsoft ve zxing i karışık mı kullanıyorsunuz?

Hocam premium paketi 240 $ ayrıca yıllık upgrade ücreti 40 $ ciddi bir rakam gibi geliyor. Bu son Gönderdiğiniz örnekle çözemeseydim ben de bunu satın almayı gözden çıkarmıştım ama gerek kalmadı şu aşamada bir tek ses dosyasını bir türlü kullanamadım yani kamera barkodu okutuyor ama bip sesini alamıyorum

(07-11-2023, Saat: 23:09)engerex Adlı Kullanıcıdan Alıntı: Geliştirici şöyle demiş;

"The standard camera component is, I think too slow for Android and IOS. You need to find a third party product or cook your own for a smooth experience. From Delphi 11 the standard camera component seems much improved."
"Standart kamera bileşeninin Android ve IOS için çok yavaş olduğunu düşünüyorum. Sorunsuz bir deneyim için üçüncü taraf bir ürün bulmanız veya kendinizinkini *pişirmeniz* gerekir. Delphi 11'den itibaren standart kamera bileşeni çok daha gelişmiş görünüyor."

Doğru söylüyor ben uygulamamı zaten RAD 11.3 ’de yazmıştım kamera kontrol bileşiğini bunu da çok güzel çalışıyor onda sıkıntı yok android tarafında iOS tarafını bilmiyorum
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çözüldü _ Delphi Community Edition SDK ayarları hatası cinarbil 1 485 12-03-2026, Saat: 10:25
Son Yorum: damert6
  Webbrowser Sorunu [ÇÖZÜLDÜ] codder71 7 418 10-02-2026, Saat: 17:04
Son Yorum: codder71
  Android Uygulama İkonu ARM 2 400 11-11-2025, Saat: 12:15
Son Yorum: ARM
  Android SDK kajmerantime 1 385 28-10-2025, Saat: 14:53
Son Yorum: cinarbil
  Android El Terminali Barkod Okuyucu Verisi tuna 0 334 17-10-2025, Saat: 01:07
Son Yorum: tuna



Konuyu Okuyanlar: 1 Ziyaretçi