Camera plugin
- Flutter kursu
- İleri seviye
- Ders 33/69
- 4 dk
camera paketi ile canlı kamera önizlemesi yapmayı öğrenirsin.
camera paketi
camera paketi, cihaz kamerasına doğrudan erişim sağlar ve canlı önizleme oluşturmanıza imkan tanır. CameraController ile kamera başlatılır, CameraPreview widget'ı ile görüntü ekranda gösterilir. image_picker'dan farkı, kullanıcının çekim yapmadan önce kamera akışını görebilmesidir.
final controller = CameraController(camera, ResolutionPreset.high);
await controller.initialize();CameraPreview widget'ı
CameraPreview, controller'ın canlı görüntüsünü ekranda gösteren widget'tır. CameraPreview(controller) şeklinde kullanılır. Controller initialize edilmeden bu widget kullanılırsa hata fırlatır.
CameraPreview(controller);Uygulama Controller başlat ve kontrol et
Bir CameraController oluştur, initialize ile başlat ve controller.value.isInitialized değerini yazdır.
Başlangıç kodu
class CameraDescription {
final String name;
CameraDescription(this.name);
}
enum ResolutionPreset { low, medium, high }
class CameraValue {
final bool isInitialized;
CameraValue(this.isInitialized);
}
class CameraController {
final CameraDescription camera;
final ResolutionPreset resolution;
bool _initialized = false;
CameraController(this.camera, this.resolution);
CameraValue get value => CameraValue(_initialized);
Future<void> initialize() async {
_initialized = true;
}
}
void main() async {
// controller oluştur
// initialize çağır
// isInitialized yazdır
}Örnek çözüm
class CameraDescription {
final String name;
CameraDescription(this.name);
}
enum ResolutionPreset { low, medium, high }
class CameraValue {
final bool isInitialized;
CameraValue(this.isInitialized);
}
class CameraController {
final CameraDescription camera;
final ResolutionPreset resolution;
bool _initialized = false;
CameraController(this.camera, this.resolution);
CameraValue get value => CameraValue(_initialized);
Future<void> initialize() async {
_initialized = true;
}
}
void main() async {
final controller = CameraController(
CameraDescription('0'),
ResolutionPreset.high,
);
await controller.initialize();
print(controller.value.isInitialized);
}Beklenen çıktı
true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 camera paketinin image_picker'dan temel farkı nedir?
- İkisi tamamen aynıdır
- camera paketi yalnızca galeriden seçer
- camera paketi canlı kamera önizlemesi sağlar Doğru cevap
- image_picker daha hızlıdır
Açıklama: camera paketi canlı kamera akışı ve önizleme sağlar; image_picker ise yalnızca sistem seçicisini açar.
2 Controller başlat
await controller.____;
await controller.initialize();
Açıklama: CameraController'ı kullanmadan önce initialize metodu çağrılır; asenkron olduğu için await gerekir.
3 camera paketi parçaları
| Kavram | Anlamı |
|---|---|
camera |
Kamera erişim paketi |
CameraController |
Kamera denetleyicisi |
CameraPreview |
Canlı önizleme widget'ı |
initialize |
Başlatma metodu |