Windows 10 UWP Uygulamalarında Ön veya Arka Kameranın Görüntüsünü Almak

windows 10 logo
PRO

Windows 10 UWP Uygulamalarında Ön veya Arka Kameranın Görüntüsünü Almak

Windows 10 UWP uygulamalarında cihazda bulunan ön veya arka kamera’dan birinin görüntüsünü alarak ekranda göstermek isteyebiliriz.
Örneğin, daha kaliteli olduğu için arka kamera’nın görüntüsünü alıp üzerine filtre uygulayarak ekranda önizleme yaptırabiliriz.
Aynı şekilde ön kamera’nın görüntüsünü ekranda göstererek kullanıcının aynaya bakıyormuş gibi uygulamayı kullanmasını sağlayabiliriz.
Hemen Visual Studio’yu açarak yeni bir proje oluşturalım ve nasıl yapabildiğimize bakalım.
Windows kategorisinden Blank App (Universal Windows) proje template’ini seçerek, projeme bir isim veriyorum;

Solution Explorer’dan erişebildiğim Package.appxmanifest dosyasına çift tıklayarak açıyoruz.

Capabilities tab’ında yer alan WebCam ve Microphone kutucuklarını işaretliyoruz;

MainPage.xaml dosyasını açıyor ve sayfaya birCaptureElement nesnesi ekliyoruz;

​ MainPage.xaml.cs dosyasını açıyor veOnNavigatedTo methodunu override ediyoruz. Böylece MainPage sayfasına gelindiğinde yapılacak işleri yazabileceğimiz bir method’umuz oluyor;
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
var videoDevices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
var camera = videoDevices.FirstOrDefault(item => item.EnclosureLocation != null && item.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Front);
if (camera != null)
{
var captureSettings = new MediaCaptureInitializationSettings { VideoDeviceId = camera.Id };
var mediaCapture = new MediaCapture();
await mediaCapture.InitializeAsync(captureSettings);
CameraCaptureElement.Source = mediaCapture;
await mediaCapture.StartPreviewAsync();
}
}
OnNavigatedTo methodunda sırasıyla şunları yapıyoruz;Uygulamanın çalıştığı cihazda bulunan ve video kaydetme yeteneğine sahip olan cihazların listesini alıyoruzBu cihaz listesinden ön panel’de olanları filtreliyoruzEğer ön panelde bir video kaydedici cihaz varsa, bu cihazın Id bilgisi üzerinden cihaza erişiyoruzEriştiğimiz cihaz’ın önizlemesini MainPage.xaml dosyasında tanımladığımız CaptureElement nesnesi üzerinde göstermeye başlıyoruz
Eğer ön kamera’nın değilde, arka kamera’nın görüntüsünü göstermek isteseydik camera değişkenine aşağıdaki şekilde değer ataması yapmamız gerekecekti;
var camera = videoDevices.FirstOrDefault(item => item.EnclosureLocation != null && item.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Back);

 

Arşivler