سؤال

أنا أستخدم مؤسسة AV لالتقاط الصور بشكل مستمر بعد أن أصدرت Apple iOS 4.0 باتباع الرموز المقدمة من قبل ،http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html

ومع ذلك ، عندما أتصل [جلسة startrunning] ؛" يستغرق حوالي 1-2 ثانية لبدء معاينة الكاميرا. لذلك ، هذا أمر محبط للمستخدم النهائي لأنه يحتاج إلى الانتظار لبعض الوقت.

هل هناك طريقة لإيقاف الجلسة بدلاً من إيقافها حيث يمكنني بدء الجلسة عند إطلاق البرنامج والاحتفاظ بها مؤقتًا حتى ينقل المستخدم إلى شاشة الكاميرا وبدء تشغيلها هناك؟ شكرا على اي مساعدة.

هل كانت مفيدة؟

المحلول

لا توجد طريقة "للتوقف" في الجلسة ، ولكن يمكنك بدء تشغيل جلسة الالتقاط في أي وقت وتركها تعمل. إذا كنت تلتقط الصور الثابتة ، فما عليك سوى الاتصال بـ CapturestillImageAsynchronouslyFromConnection عندما تكون جاهزًا. إذا كنت تلتقط الفيديو ، فيمكنك الحصول على captureOutput: DeChoutputSampleBuffer: من Connoconnection: الطريقة في المندوب فقط رمي الإطارات بعيدًا حتى تريد أن تفعل شيئًا معهم. قد تكون قادرًا على بدء جلسة الالتقاط بدون جهاز إخراج حتى تكون جاهزًا (لم تجرب ذلك).

نصائح أخرى

بدلاً من توقف جلستك ، يمكنك تعطيل اتصال الإدخال.

على سبيل المثال

<your_video_preview_layer>.connection.enabled = NO;

بحيث لن يستهلك البيانات من جهاز الإدخال.

أتمنى أن يكون هذا ما تبحث عنه.

هذا ما فعلته لمنع واجهة المستخدم من قفل الثواني الأولية 1-2 عند الاتصال -Startrunning.

1) Add UIActivityIndicator
2) Add observer to AVCaptureSession
3) call -startRunning in a background thread
4) Resume the UI in the notification callback
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top