پیمائش اور عدمِتحفظ
آئیوس میں ایک بار کوڈ اور کیر کوڈ اسکینر کو AvFation کے ساتھ تیار کرنا
Table of Contents
بار کوڈ کے لیے اے وی فونیشن سمجھ کر
ایپل کا اے وی فونکشن فریم ورک پر آڈیو ویویشن میڈیا کے ساتھ کام کرنے کے لیے ایک مکمل-کم سطح پر ایک رن فراہم کرتا ہے. بار کوڈ اور QR کوڈ اسکیننگ کے لیے. فریم ورک شپ کر تا ہے. یہ مشین کا ایک وسیع پیمانے پر مطالعہ کر سکتا ہے.
AVFoundation اسکیننگ جدید اوزاروں پر مشتمل ہارڈ ویئر ہے، تیز رفتار اور قابل اعتماد کارکردگی پیش کرتا ہے، یہ آگے اور پیچھے کیمروں کے ساتھ کام کرتا ہے اور اس کے ذریعے سے اس علاقے کو کارکردگی اور صارف کو بہتر بنانے کے لیے دلچسپی کے مخصوص علاقے تک محدود کیا جا سکتا ہے۔
مشنریوں کی حوصلہافزائی کریں
کسی بھی AVFoundation پر مبنی اسکینر کا مرکز . یہ باسکٹ بال اسٹرکچر ہے جو کیمرے سے لیکر metadata برآمدے تک چلا جاتا ہے. سیشن کئی کوائل پلیٹ فارمز کا تقاضا کرتا ہے جو ایک مخصوص نظریۂ اضافی یا مینیجر کلاس میں بہترین عمل پزیر ہوتے ہیں۔
درخواست کیمورا اجازت طلب
کیمرے تک رسائی سے پہلے آپ کو صارف سے اجازت طلب کرنی ہوگی ۔آپ کو آئیو ایس 10 میں شامل کرنا ہوگا آپ کی معلومات میں کلید شامل کرنا ہوگا
AVCaptureDevice.requestAccess(for: .video) { granted in
if granted {
// Configure and start the capture session
} else {
// Show an alert guiding the user to Settings
}
}
اے ویکیپیڈیا کی تشکیل
ایک بار اجازت دی جاتی ہے، فوری طور پر، . اس کے سیشن پریمیئر کو کنٹرول کرنے کے لئے ویڈیو کی خوبی کو کنٹرول کرنے کے لئے ؛ بار کوڈ اسکیننگ کے لئے ایک اچھا بجٹ ہے، لیکن آپ بھی استعمال کر سکتے ہیں۔
let session = AVCaptureSession()
session.sessionPreset = .high
کیمرون کا اندراج
طے شدہ ویڈیو ڈیوائس (یعنی پیچھے کا کیمرے) کو دوبارہ شروع کریں اور تخلیق کریں. اگر انسپ کو سیشن میں شامل نہیں کیا جا سکتا (مثلاً ڈیوائس مصروف ہے)، غلطی حاصل کرکے صارف کو پیش پیش کیا جاتا ہے۔
guard let camera = AVCaptureDevice.default(for: .video) else { return }
do {
let input = try AVCaptureDeviceInput(device: camera)
guard session.canAddInput(input) else { return }
session.addInput(input)
} catch {
print("Camera input error: \(error.localizedDescription)")
}
میتاڈاٹا کے باپ کو شامل کرنا
مثال کے طور پر ، اپنے منتظم (مُقدس سریع کو ) بنائیں اور اسے سیشن میں شامل کریں۔
let metadataOutput = AVCaptureMetadataOutput()
metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
guard session.canAddOutput(metadataOutput) else { return }
session.addOutput(metadataOutput)
// Specify which code types to detect – must be done after the output is added
metadataOutput.metadataObjectTypes = [.qr, .ean13, .code128, .pdf417]
اہم: سیشن میں شامل ہونے کے بعد سیٹ کرنا ضروری ہے. اسے پہلے ہی تباہی کا سبب بنا دے گا۔
آغاز
یو آئی پی پر عملے کو رکھنے کے لئے پس منظری ہوئی سیشن چلائیں کال بیک مشین یا کسی وقف کردہ سیریل میں
DispatchQueue.global(qos: .userInitiated).async {
session.startRunning()
}
اِس کے بعد اُس نے اُن سے کہا : ” مَیں نے . . .
منتظمین طریقہ کار کو جب بھی اسکینر ایک یا زیادہ کوڈس کو دریافت کرتا ہے. یہ طریقہ کے واقعات کو حاصل ہوتا ہے، جس کو ڈیکلٹی تک رسائی کے لیے آپ کو کاسٹ کرنا پڑتا ہے۔
func metadataOutput(_ output: AVCaptureMetadataOutput,
didOutput metadataObjects: [AVMetadataObject],
from connection: AVCaptureConnection) {
// Process only the first detected code (most common pattern)
guard let metadataObject = metadataObjects.first,
let readableObject = metadataObject as? AVMetadataMachineReadableCodeObject,
let stringValue = readableObject.stringValue else { return }
// Use the scanned value (e.g., display, validate, or send to server)
handleScannedCode(stringValue, type: readableObject.type)
}
بار بار دوبارہ دوبارہ استعمال کرنے سے روکنے کے لیے سیشن بند کرنا عام بات ہے. فون کوڈ کو چلانے کے بعد اور اسے دوبارہ شروع کرنے کے لیے.
کام مکمل کرنے کے طریقے
جب آپ کے پاس تار کی قدر ہوتی ہے تو یہ طے کریں کہ کوڈ قسم اور مواد پر مبنی کیا عمل کِیا جا سکتا ہے ۔
- – صفاری یا انورپور براؤزر میں [FLT:AN]۔
- ویژیولیشن] – پرسے معیاری فارمیٹ (] اور پروگرامماٹک (ای سیریز اضافی) کو جوڑتا ہے۔
- Prroduct codes – دیکھو اپ اپ پروڈکشن معلومات کو ایک ایپی آئی کے ذریعے [UPC Database یا آپ کا خود ساختہ مصنوعی نظام۔
- ] کولکتہ معلومات – پرسی وار یا میکروڈ فارمیٹز اور پتن بک میں ایک نیا رابطہ تخلیق کرتے ہیں۔
- پلاین متن – کسی گھڑی وار یا نقل میں ماضی کی بورڈنگ میں ظاہر کرنا۔
ہر کوڈ ٹائپ کے لیے، ڈرائنگ سے پہلے تار کو ترتیب دینا. ملازمین یا مجرم کوڈ کو نظر انداز کرنا یا پھر ان کی اطلاع دی جانی چاہیے۔
سکہلنگ پرفارمنس کے لئے بہترین مشق
ہموار اور مؤثر اسکین بنانے کے لئے، ان ہدایات پر عمل کریں:
- لیمیٹ میٹاڈاا باسکٹ انواع – صرف کوڈ فارمیٹ آپ کی ایپ کی ضرورت کو اصل میں قابل بنا سکتا ہے. ہر اضافی فارمیٹ مزید ادائیگی کے ساتھ ساتھ ساتھ ساتھ ان کی تیاری بھی شامل ہے۔
- ایک علاقائی دلچسپی سیٹ کریں – استعمال کریں ویڈیو کھانے کے ایک چھوٹے حصے کو جہاں کو کوڈ کی توقع کی جاتی ہے، اس اچانک بہتر رفتار بہتر ہو جاتی ہے اور غلط مثبت نتائج کم ہو جاتے ہیں۔
- درست ویڈیو کشش ثقل [[1]] – کیمرے کو برقرار رکھنے کے لئے کیمرے پریفیکچرل کو برقرار رکھتا ہے اور زیادہ سے زیادہ اسکینگری گائیڈز کے لئے مثالی ہوتا ہے۔
- منتظمین کے لیے ایک سریعہ (Serial quee for service for serministerbacks – Perserve بھاری کارکردگی (مثلاً، نیٹ ورک کی دیکھ ریکھ) بنیادی دھاگے سے ہٹ کر UI reaction کے لیے.
- نیٹو فائرنگ حمایت – صارف کو کم روشنی کے لئے کیمرے کے داغ کو نکالنے کی اجازت دینے کے لئے. چیک کرو قبل از وقت.
- Ghanking shanking from handling – کامیاب اسکین کے بعد، مختصر مدت کے ساتھ سیشن کو دوبارہ شروع کرنا (مثلا 1–2 سیکنڈ) ایک ہی کوڈ کی فوری ری انسیشن کو روکنے کے لیے۔
صارف کا دودھ پلانے والا بچہ
ایک اچھا سکیلنگ تجربہ میں نظریاتی اور حیاتیاتی کیفیات شامل ہیں۔ صارف کی رہنمائی کے لیے ان رد عمل کو متعارف کرانا:
- ویژیول کوٹلی – ایک ممتاز ریٹیننگ کوڈ کو استعمال کرتے ہوئے . یہ کے ذریعے نقل و حمل کو تبدیل کرنے کے لیے درکار ہے.
- Annimation – ایک خفیہ انیمیشن (مثلاً کم حدیث) جبکہ کسی کوڈ کو تسلیم کیا جاتا ہے۔
- [Sound – ایک نظام آواز کو استعمال کرتے ہوئے مختصر، مثبت لہجے جیسے (یعنی "مالائی سینٹی گریڈ" آواز) کے ساتھ پلے کریں ۔
- [Haptic reaction[1] – استعمال یا ایک خفیہ ونگ کے لیے استعمال کیا جاتا ہے۔
- اسکا علاقہ ہدایت کار – کونے کے گائیڈز کے ساتھ ایک ٹرانسپورٹ رینچنگ کو دکھایا تاکہ صارفین کو کوڈ کے مرکز میں مدد مل سکے۔
خامی ہینڈلنگ اور Edge کیس
دیکھو غلطی غلطی غلطی آپ کے سِنِر کو یقینی بناتی ہے جب حالات غلط ہو جاتے ہیں ۔
- Cammera noncy – چیک اور پر اوزار۔ on iPod چھونا یا کسی کیمرے کے بغیر کوئی بامعنی پیغام پیش کرنا۔
- [Persions] – ایک گھڑیال سے رابطہ ظاہر کریں جو کے ذریعے شروع ہوتا ہے۔
- ایسوسی ایشن کی وضع قطع کی جانے والی ناکامی – لاگو غلطی جب یا لوٹنے . یہ ہو سکتا ہے اگر پس منظر میں کسی اور ایپ کو کیمرے کا استعمال کر رہا ہو۔
- لوک روشن یا غیر معمولی تصاویر – دلچسپی کا غیر فعال علاقہ کم کرنا اور کیمرے کے آٹوفیکوس کو قابل بنانا ممکن بنایا جاتا ہے۔ صارف کو بجلی یا توانائی بڑھانے کے لیے استعمال کرنا ہوتا ہے۔
- instruction یا غیر محفوظ کوڈ نوعیتوں – مالیہ تمام ڈیوائسز پر تمام فارمیٹ کی حمایت نہیں کر سکتا
ایک کمزور اوزار کی جانچ
AVFoundation Barcode Shanking production of Ghus and IPad. پر آپ کا عمل آزما:
- قدیم اوزاروں (iPhone 6s, ipad Air 2) – یہ انفلیشنوں میں موجود ہیں اور اعلیٰ ترین ربر پریفیکچرنگ پریفیکچرنگ کے ساتھ جدوجہد کر سکتے ہیں [FLT] کے لیے استعمال کریں.
- مختلف کیمرے کے ساتھ ڈیزائنز – ٹیلی فون یا موبائل کیمرے کے ساتھ ساتھ مختلف سمتوں میں مرکوز ہو سکتے ہیں. ہمیشہ برکوڈ اسکیننگ کے لئے settleg Cam کو استعمال کریں.
- کم روشنی کے ماحول – سستے حالات میں جانچنا تاکہ اسکین کو زیادہ سے زیادہ دیکھ سکے اور گیل کے کام میں اضافہ ہو سکے ۔
- مختلف کوڈ سائز اور ڈیزائنز – Try codes 1 سم 1 سم 1 سے لیکر بڑے پوسٹروں تک اور ٹیسٹ سیارچے کی تصاویر کی تیاری کرنا
اعلیٰ نظریات
پروڈکشن پلگ انس کے لیے باقاعدگی سے اسکیلنگ (ہر ایک سیشن میں کئی کوڈ کو استعمال کرنا) ، جیرم کنٹرول یا پھر آر کیٹ کے ساتھ شامل کرنا۔ اگر آپ کو اب بھی تصاویر (مثلاً) سے کوڈ کرنے کی ضرورت ہے تو یا کو فریم ورک سے استعمال کرنا ہوگا اگرچہ etation کے لیے نہایت تیز ترین ویڈیو ہے
اے وی ایف کوڈشن کی حامل ایک گہری دھن کے لیے ایپل کی کوئٹہ کے مقام پر ایک setting راہنما اور [FLT]] میں آپ کو مکمل نمونہ [FLLT:3] بھی مل سکتا ہے۔
ان ہدایات پر عمل کرنے اور اپنے عمل کو مکمل طور پر جانچنے سے آپ ایک ایسے آلہ ، ہائی کمپیوٹر کوڈ اور کی آر کوڈ اسکینر کو محفوظ کر سکتے ہیں جو آپ کی ICS app کی لامحدود اور قابلِاعتماد صلاحیت کو بڑھا سکتا ہے ۔