CodeBlanks Logo Icon CodeBlanks

Camera plugin

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

main.dart
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

main.dart
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

Soru
await controller.____;
Cevap
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

İleri seviye bölümündeki tüm dersler