Memanfaatkan fitur kamera di Aplikasi Windows Phone

Kamera adalah salah satu dari banyak fitur penting yang ada di Windows Phone. Sebagai Developer, kita bisa mengintegrasikan kamera dengan aplikasi kita sehingga pengguna bisa mengambil gambar dan mengeditnya dengan aplikasi kita. Yang pertama perlu kita ketahui, untuk menggunakan fitur kamera di Windows Phone kita harus memperbolehkan project kita mengakses fitur ini melalui file manifest yang ada di project, yaitu ID_CAP_IS_CAMERA.

API Camera di Windows Phone

Langkah pertama adalah untuk membuat halaman yang menampilkan gambar menggunan kamera. Kita akan menggunakan VideoBrush, yang merupakan salah satu dari native XAML brush yang memperbolehkan untuk embed sebuah video. Kita akan mnggunakan itu untuk backgroud dari Canvas control, seperti script berikut:

Mengambil Gambar

Sekarang kita telah mempunyai halaman yang menampilkan gambar secara langsung dari kamera, kita bis menggunakan API yang ada di namepspace Windows.Phone.Media.Capture. Untuk lebih spesifik, class yang digunakan untk mengambil gambar dinamakan PhotoCaptureDevice, seperti yang ada di script berikut :

Sebelum memulainya, kita perlu membuat dua pilihan : mana kamera yang akan digunakan dan mana resolusi yang tersedia yang ingin digunakan. Untuk menggunakanknya kita akan menggunakan method GetAvailableCaptureResolution() yang ada di class PhotoCaptureDevice, dan mengirimkannya menjadi parameter pada object CameraSensorLocation yang merepresentasikan camera yang kita gunakan. Method tersebut akan mengembalikan collection dari resoluti, yang diidentifikasikan oleh class Size.

Ketika kita telah menentukan mana resolusi yang akan kita gunakan, kita bisa mengirimnya sebagai sebuah paramter ke method OpenAsync() dari class PhotoCaptureDevice. Hasilnya akan mengembalikan sebuah object PhotoCaptureDevice yang berisikan gambar langsung.

Sayangnya masih ada batasan di SDK ini, kita hanya bisa mengambil satu gambar untuk satu kali, jadi kita hanya  bisa menggunakan 1 frame satu waktu. Seperti code dibawah ini :

Dari code diatas dapat kita lihat proses dimulai dari object CameraCaptureSequence, yang merepresentasikan proses alur. Karena batasan tadi kita hanya bisa mengirimkan 1 parameter untuk memanggil method CreateCaptureSequence dari class PhotoCaptureDevice.

 

Merekam Video

Proses untuk merekam video hampir sama caranya dengan mengambil gambar. Dalam kasus ini, kita akan menggunakan class AudioVideoCaptureDevice dan juga class PhotCaptureDevice. Seperti yang terlihat di contoh bawah ini, prosedur awalnya sama, dimana kita memilih mana resolusi dan kamera yang ingin kita gunakan, dan tampilkan hasilnya menggunakan VideoBrush.

Merekam sebuah video menjadi mudah dengan menggunakan class AudioVideoCaptureDevice yang ada di method StartRecordingToStreamAsync(), mudah dari sisi penyimpanan hasil rekaman. Karena ini format video, tentu kita membutuhkan fungsi stop untuk merekam video, dan untuk melakukannya kita hanya perlu memanggil method StopRecordingAsync().

Berikut contoh code untuk penyimpan hasil rekaman ke local storage :

Kita juga dengan mudah bisa men-tes hasil dari operasi diatan menggunakan class MediaPlayerLauncher untuk memutar hasil rekaman menggunakan code dibawah ini :

 

Iklan

Good People write good comments ..

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s