Pada framework Android terdapat class yang berfungsi untuk menghandle Camera yang terdapat pada hampir setiap smartphone dan tablet. Berhubung project saya kali ini berhubungan dengan akses Camera, maka saya akan sedikit mengulas tentang bagaimana mengakses Camera pada Android.
Secara umum, beberapa class di Android yang berkaitan dengan ini adalah sebagai berikut:
- Camera, merupakan class utama yang akan berfungsi untuk mengendalikan hardware camera.
- Surface View, merupakan class yang berfungsi dalam menampilkan live camera pada user
- MediaRecorder, untuk class ini digunakan saat capture video.
- Intent,
Hal lain yang perlu diperhatikan adalah jangan lupa untuk deklarasi akses Camera pada manifest file seperti berikut ini:
- Camera Permission
<uses-permission android:name="android.permission.CAMERA" />
- Camera Features
<uses-feature android:name="android.hardware.camera" />
- Storage Permission - meminta hak akses untuk menyimpan file hasil capture pada sd card
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- Audio Recording Permission - Untuk capture Video
<uses-permission android:name="android.permission.RECORD_AUDIO" />
- Location Permission - Untuk meminta akses GPS agar dapat menambahkan geolocation pada hasil capture
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Setelah semua permission dituliskan pada manifest, sekarang waktunya untuk menuliskan kode program untuk mengakses dan menggunakan fitur camera. Android sudah menyediakan API untuk lebih mudah mengakses Camera melalui Intent sehingga mempercepat pembuatan baris kode. Langkah - langkah yang harus ditulis kira kira seperti berikut ini:
- Membuat Intent baru yang berfungsi untuk meminta (request) image (MediaStore.ACTION_IMAGE_CAPTURE) atau video (MediaStore.ACTION_VIDEO_CAPTURE) menggunakan MediaStore.
- Menjalankan Intent Camera dengan menggunakan startActivityForResult()
- Konfigurasi fungsi onActivityResult() sebagai callback dari startActivityForResult().
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100; private Uri fileUri; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // create Intent to take a picture and return control to the calling application Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name // start the image capture Intent startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); }
0 comments:
Posting Komentar
Dilarang melakukan komentar yang berbau SARA dan pornografi. :D