Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Virtual Gamelan Berbasis Android T1 672007003 BAB II

(1)

7

2.1

Penelitian Terdahulu

Berbagai penelitian mengenai aplikasi virtual gamelan telah banyak dilakukan di antaranya adalah penelitian mengenai Design of Virtual Javanese Gamelan as Learning Media. Dalam penelitian pertama ini didapatkan bahwa gamelan Jawa virtual di multimedia memungkinkan siswa untuk praktek mempelajari dan bermain gamelan sendiri. Multimedia belajar ini diharapkan dapat menjembatani siswa untuk menyukai gamelan Jawa yang nyata, sehingga gamelan Jawa sebagai warisan budaya yang memiliki nilai-nilai mulia kehidupan yang dapat diteruskan dari satu generasi ke generasi berikutnya. Dengan media ini generasi muda indonesia akan selalu mengerti dan menyukai budaya lokal dan nasional di era globalisasi (Pramudi, 2011).

Penelitian kedua mengenai Android juga pernah dilakukan dengan judul Implementation of an Android Phone Based Video Streamer. Dalam penelitian kedua ini didapatkan bahwa metodologi yang digunakan untuk mengintegrasikan open source media server LIVE555 dengan MPEG4 perekam video berbasis modul perangkat lunak yang berjalan pada Android berbasis ponsel. Sistem yang diterapkan memanfaatkan kamera di ponsel untuk menangkap gambar video secara rael time yang kemudian dialirkan melalui jaringan WiFi kemudian video dapat dilihat di stasiun remote


(2)

Berdasarkan penelitian-penelitian sebelumnya, penelitian ini mengembangkan dari penelitian yang sudah ada dengan objek penelitian gamelan dengan menggunakan teknologi Android.

Penelitian yang dibuat adalah “ Perancangan dan Implementasi

Aplikasi Virtual Gamelan Berbasis Android” menggunakan metode

Prototype. Perbedaan dari penelitian yang sudah ada, penelitian yang dilakukan sekarang adalah mengenai aplikasi yang menyajikan gamelan dalam bentuk virtual berbasis Android. Diharapkan dengan adanya aplikasi ini user dapat memainkan gamelan pada telepon seluler sehingga lebih ringkas dan harga terjangkau.

2.2

Virtual

Menurut Kamus Besar Bahasa Indonesia pengertian virtual

adalah secara nyata (KBBI, 2008). Dengan kata lain sesuatu yang telah divirtualkan tidak dapat lagi dilihat dengan mata atau dipegang, tetapi mempunyai fungsi yang sama seperti sistem aslinya (Siahaan, 2011).

2.3

Gamelan

2.3.1 Pengertian Gamelan

Gamelan adalah perangkat alat musik Jawa (sunda, bali, dan sebagainya) yang terdiri atas saron, bonang, rebab, gendang, gong, dan sebagainya (KBBI, 2008). Sedangkan menurut (Yudoyono, 1984) gamelan adalah sebuah pernyataan musikal berupa kumpulan alat-alat musik (bunyi-bunyian) tradisional dalam jumlah besar yang terdapat (terutama) di Pulau Jawa. Gamelan lengkap mempunyai kira-kira 75 alat dan dapat dimainkan oleh 30 niyaga (penabuh)


(3)

dengan disertai 10 sampai 15 pesinden. Semua alat tersebut dibunyikan bersama-sama atau sebagian dengan cara yang sesuai, sehingga merupakan konsert atau kumpulan suara yang teratur menurut tempo dan irama tertentu.

Komponen utama yang menyusun alat-alat musik gamelan adalah bambu, logam, dan kayu. Masing-masing alat mempunyai fungsi tersendiri dalam pagelaran musik gamelan. Misalnya, gong berperan menutup sebuah irama yang panjang dan memberi keseimbangan setelah sebelumnya musik dihiasi oleh irama gending (Haryono, 2001).

2.3.2 Sejarah dan Perkembangan Gamelan

Sedemikian telah menyatunya, dalam perjalanannya gamelan Jawa telah mempunyai sejarah yang panjang. Dan seperti musik dari kebudayaan lain, gamelan Jawa juga mengalami perubahan dan perkembangan yang masih berlangsung sampai saat ini. Perubahan terutama terlihat dari tata cara serta bahan pembuatannya, sedangkan perkembangan menyangkut segi kuantitas serta pemilikan dan penggunaanya. Kalau dahulu hanya terbatas untuk kalangan istana, kini siapa pun yang berminat dapat memainkanya. Sepanjang bukan gamelan-gamelan Jawa yang termasuk dalam kategori pusaka (Yudoyono, 1984).

2.4

Android

2.4.1 Pengertian Android

Android adalah perangkat lunak toolkit baru open source


(4)

Open Handset Allience (OHA) yaitu aliansi perangkat selular terbuka yang terdiri dari 47 perusahaan hardware, software dan perusahaan telekomunikasi ditujukan untuk mengembangkan standar terbuka bagi perangkat selular. Dalam beberapa tahun Android diharapkan bisa ditemukan didalam berjuta-juta telepon dan perangkat gerak yang lainnya (Burnette, 2009).

Android Standart Development Kid (SDK) menyediakan perlengkapan dan Application Programming Interface (API) yang diperlukan untuk mengembangkan aplikasi pada platform Android dengan menggunakan bahasa pemrograman Java (Android Developer, 2011).

2.4.2 Sejarah dan Perkembangan Android

Pada mulanya terdapat berbagai macam sistem operasi pada perangkat selular, di antaranya sistem operasi Symbian, Microsoft Windows, Mobile, Mobile Linux, iPhone, dan sistem operasi lainnya. Namun diantara sistem operasi yang ada belum mendukung standar dan penerbitan API yang dapat dimanfaatkan secara keseluruhan dan dengan biaya yang murah. Kemudian Google ikut berkecimpung didalamnya dengan platform Android, yang menjanjikan keterbukaan, keterjangkauan, open source, dan framework

berkualitas.

Pada tahun 2005, Google mengakuisisi perusahaan Android Inc. Untuk memulai pengembangan platform Android. Di mana terlibat dalam pengembangan ini Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Pada pertengahan 2007 sekelompok pemimpin industri bersama-sama membentuk aliansi perangkat


(5)

selular terbuka, Open Handset Alliance (OHA). Bagian dari tujuan aliansi tersebut adalah berinovasi dengan cepat dan menanggapi kebutuhan konsumen dengan lebih baik, dengan produk awalnya adalah platform Android, di mana Android dirancang untuk melayani kebutuhan operator telekomunikasi, manufaktur handset, dan pengembang aplikasi. OHA berkomitmen untuk membuat Android open source dengan lisensi Apache versi 2.0 (Hashimi, 2009).

Android pertama kali diluncurkan pada 5 November 2007, dan

smartphone pertama yang menggunakan sistem operasi Android dikeluarkan oleh T-Mobile dengan sebutan G1 pada bulan September 2008. Hingga saat ini Android telah merilis beberapa versi Android untuk menyempurnakan versi sebelumnya. Selain berdasarkan penomoran, pada setiap versi Android terdapat kode nama berdasarkan nama-nama kue.

Hingga saat ini sudah terdapat beberapa versi yang telah diluncurkan, diantaranya: versi 1.1 dirilis pada 9 Februari 2009, versi 1.5 dirilis pada 30 April 2009 diberi nama Cupcake, versi 1.6 dirilis pada 15 September 2009 diberi nama Donut, versi 2.0/2.1 dirilis pada 26 Oktober 2009 diberi nama Éclair dan mengalami perbaikan pada januari 2010. versi 2.2 dirilis mei 2010 diberi nama

Froyo (frozen yogurt )dan perbaikan pada juni 2010, versi 2.3.3/2.3.4 dirilis februari 2011 diberi nama Gingerbread dan mengalami perbaikan pada mei 2011, versi 3.0/3.1/3.2 diberi nama


(6)

2011, dan versi terakhir saat ini 4.0 dirilis pada oktober 2011 dan diberi nama Ice Cream Sandwich (Android Developer, 2011).

2.4.3 Features Android

Features yang tersedia pada platform android saat ini antara lain (Meier,2009):

- Tidak ada biaya perijinan (licensing), distribusi atau pengembangan.

- Akses Wi-Fi untuk perangkat keras.

- GSM, EDGE, dan 3G untuk transfer telepon atau data, memungkinkan user untuk membuat, menerima panggilan atau pesan SMS, atau untuk mengirim dan mengambil data pada jaringan mobile.

- APIs meliputi servicelocation-based seperti untuk GPS.

- Kendali DNS termasuk perangkat keras multimedia playback dan

recording menggunakan kamera dan mikrofon.

- APIS untuk accelerometer dan perangkat keras penunjuk arah (kompas).

- IPC untuk menyampaikan pesan. - Berbagi data stores

- Integrasi browser berdasarkan open source engine WebKit

- Dukungan penuh untuk mengintegrasikan aplikasi pengendalian peta sebagai bagian dari penghubung antara user dengan aplikasi. - Dukungan Peer-to-peer(P2P) menggunakan Google Talk

- Grafis yang dioptimalkan dan didukung oleh library grafis 2D

yang terkustominasi, grafis 3D berdasarkan spesifikasi openGL ES .


(7)

- Mendukung audio (MP3, AAC, AMR, ), video (MPEG4,

H.264),dan gambar (JPG, PNG, GIF).

- Framework aplikasi yang mendukung penggunaan kembali komponen aplikasi dan penggantian dari aplikasi asli.

- Mesin virtual Delvix berjalan diatas linux kernel dan dioptimalkan untuk perangkat mobile.

- SQLite untuk penyimpanan data terstruktur.

- Multi-touch : kemampuan layaknya handset modern yang dapat menggunakan dua jari atau lebih untuk berinteraksi dengan peangkat.

- Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk Eclipse IDE.

2.4.3 Architecture Android

Gambar 2.1 Detail Architecture Android (Android Developer, 2011)

Paket sistem operasi Android tediri dari beberapa unsur seperti terlihat pada Gambar 2.1. Secara sederhana arsitektur Android merupakan sebuah kernel Linux dan sekumpulan pustaka C / C++


(8)

dalam suatu framework yang menyediakan dan mengatur alur proses aplikasi (Meier, 2009).

- Linux Kernel

Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan Android bukanlah linux, karena dalam Android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux

merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karena itu, pada Android hanya terdapat beberapa service yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux

menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan. Kernel juga bertindak sebagai lapisan abstrak antara perangkat keras (hardware) dan perangkat lunak

(software) stacknya (Meier, 2009).

- Librares

Android menyertakan libraris C / C++ yang digunakan oleh berbagai komponen dari sistem Android. Kemampuan ini disediakan kepada developer aplikasi melalui framework aplikasi Android. Beberapa inti libraries tercantum di bawah ini (Android Developers, 2011):

- System C library

Merupakan variasi dari implementasi BSD berasal dari pelaksanaan sistem standar C library (libc), sesuai untuk perangkat embedded berbasis linux.


(9)

- Media Libraries

Merupakan Packet video berdasarkan OpenCORE; library

mendukung pemutaran rekaman dengan banyak format audio dan

video , serta file gambar ,termasuk MPEG4, H.264, MP3, AAC, AMR, JPG DAN, PNG.

- Surface Manager

Mengelola akses ke subsistem layar, lapisan komposit 2D dan grafis 3D dari beberapa aplikasi.

- LibWebCore

Merupakan mesin web modern yang powerfull yang baik untuk

browser pada embeddable web Android. - SGL

Merupakan mesin grafis 2D

- 3D libraries

Merupakan implementasi berdasarkan openGL ES 1,0 API ;

libraries menggunakan perangkat keras akselerasi 3D (apabila tersedia) atau yang disertakan, termasuk software yang sangat mengoptimalkan 3D.

- FreeType

Merupakan bitmap dan vektor font rendering. - SQLite

Merupakan mesin penghubung database yang kuat dan ringan dan tersedia untuk semua aplikasi.

- Android Runtime

Pada Android tertanam paket core libraries yang menyediakan sebagian besar fungsi Android. Inilah yang membedakan Android


(10)

dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin

virtual yang membuat aplikasi Android menjadi lebih tangguh dengan paket pustaka yang telah ada.

Dalam Android Runtime terdapat 2 bagian utama, diantaranya (Burnette, 2009) :

- Core Libraries

Android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Core libraries

Android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus Android.

- Dalvik Virtual Machine

Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual

yang mengeksekusi file dalam format Dalvik Executable (*.dex).

Dengan format ini Dalvik akan mengoptimalkan efisiensi penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas.

- Application Framework

Framework aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi Android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian


(11)

terpenting dalam framework aplikasi Android adalah sebagai berikut (Burnette, 2009):

- Activity Manager, berfungsi untuk mengontrol siklus hidup

aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan.

- Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama.

- Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout.

- Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat Android berada.

- Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada statusbar.

- Application Layer

Puncak dari diagram arsitektur Android adalah lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang paling terlihat pada user ketika menjalankan program. User hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime

dengan menggunakan kelas dan service yang tersedia pada

framework aplikasi. Lapisan aplikasi Android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada Android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga


(12)

berjalan diatas lapisan aplikasi dengan menggunakan pustaka API

(Application Programming Interface) yang sama.

Aplikasi juga merupakan program yang dapat mengambil alih keseluruhan layar dan saling berhubungan dengan user. Pada sisi lain, Widgets ( kadang-kadang disebut Gadgets) hanya beroperasi didalam empat persegi panjang yang kecil diantara home screen

aplikasi.

2.4.5 Komponen Aplikasi

Fitur penting Android adalah bahwa satu aplikasi dapat menggunakan elemen dari aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur

scroller dan aplikasi lain telah mengembangkan fitur scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Maka

developer tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup menggunakan scroller yang telah ada .

Agar fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek Java untuk bagian itu. Oleh karenanya Android berbeda dari sistem-sistem lain, Android tidak memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan (Android Developer, 2011).

Aplikasi Android terdiri dari komponen yang bebas digabungkan, mengikat menggunakan suatu project manifest yang menggambarkan masing-masing komponen dan bagaimana


(13)

komponen saling berhubungan. Ada enam komponen yang disediakan untuk membangun blok aplikasi (Meier, 2009):

- Activities

Activity merupakan bagian yang paling penting dalam sebuah aplikasi, karena activity menyajikan tampilan visual program yang sedang digunakan oleh user. Setiap activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan antarmuka

user yang terdiri dari views dan respon terhadap event. Setiap aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity yang pertama kali tampil ketika aplikasi dijalankan. Perpindahan antara activity dengan activity lainnya diatur melalui sistem, dengan memanfaatkan activity stack. Keadaan suatu

activity ditentukan oleh posisinya dalam tumpukan acitivity,

LIFO (Last In First Out) dari semua aplikasi yang sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya digunakan maka akan dipindahkan ketumpukan paling atas. Jika user ingin menggunakan activity sebelumnya, cukup menekan tombol back, atau menutup activity yang sedang digunakan, maka activity yang berada diatas akan aktif kembali.

Memory manager Android menggunakan tumpukkan ini untuk menentukan prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri suatu aplikasi dan mengambil sumber daya dari aplikasi tersebut.

Ketika activity diambil dan disimpan dalam tumpukkan

activity terdapat 4 kemungkinan kondisi transisi yang akan terjadi


(14)

- Active, setiap activity yang berada ditumpukan paling atas, maka

activity tersebut akan terlihat, terfokus, dan menerima masukkan dari user. Android akan berusaha untuk membuat activity aplikasi ini untuk untuk tetap hidup dengan segala cara, bahkan akan menghentikan activity yang berada dibawah tumpukkannya jika diperlukan. Ketika activity sedang aktif, maka yang lainnya akan dihentikan sementara.

- Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus pada kondisi inilah disebut paused. Keadaan ini terjadi jika activity transparan dan tidak fullscreen pada layar. Ketika

activity dalam keadaan paused, dia terlihat active namun tidak dapat menerima masukkan dari user. Dalam kasus ekstrim, Android akan menghentikan activity dalam keadaan paused ini, untuk menunjang sumber daya bagi activity yang sedang aktif. - Stopped, ketika sebuah activity tidak terlihat, maka itulah yang

disebut stopped. Activity akan tetap berada dalam memori dengan semua keadaan dan informasi yang ada. Namun akan menjadi kandidat utama untuk dieksekusi oleh sistem ketika membutuhkan sumberdaya lebih. Oleh karenanya ketika suatu

activity dalam kondisi stopped maka perlu disimpan data dan kondisi antarmuka saat itu. Karena ketika activity telah keluar atau ditutup, maka dia akan menjadi inactive.

- Inactive, kondisi ketika activity telah dihentikan dan sebelum dijalankan. Inactive activity telah ditiadakan dari tumpukan

activity sehingga perlu restart ulang agar dapat tampil dan digunakan kembali. Kondisi transisi ini sepenuhnya ditangani


(15)

oleh manajer memori Android. Android akan memulai menutup aplikasi yang mengandung activity inactive, kemudian stopped activity, dan dalam kasus luar biasa paused activity juga akan di tutup.

- Services

Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di background untuk waktu yang tidak terbatas. Komponen service diproses tidak terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika activity tidak aktif atau tidak tampak.

- Content Providers

Content providers digunakan untuk mengelola dan berbagi

database. Data dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Dengan adanya content provider memungkinkan antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam penerapannya.

- Intents

Intens merupakan sebuah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto, menampilkan halaman

web, dan lain sebagainya. Intents tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intents dapat eksplisit atau implisit, contohnya jika suatu


(16)

aplikasi ingin menampilkan URL, sistem akan menentukan komponen apa yang dibutuhkan oleh intents tersebut.

- Broadcast Receivers

Broadcast receivers merupakan komponen yang sebenarnya tidak melakukan apa-apa kecuali menerima dan bereaksi menyampaikan pemberitahuan. Sebagian besar Broadcast berasal dari sistem misalnya, baterai sudah hampir habis, informasi zona waktu telah berubah, atau pengguna telah merubah bahasa default

pada perangkat. Sama halnya dengan service, broadcast receivers

tidak menampilkan antarmuka user. Namun, broadcast receivers

dapat menggunakan notification manager untuk memberitahukan sesuatu kepada user

- Notifications

Notifications merupakan kerangka pemberitahuan untuk user.

Notification memberikan isyarat atau peringatan tanpa mencuri perhatian atau menyela aktivitas yang sedang dilakukan user.

Notifications adalah teknik yang lebih disukai untuk membuat perhatian user dari dalam suatu layanan atau broadcast receiver . Sebagai contoh, ketika device menerima pesan teks atau panggilan masuk ditandai dengan menampilkan keterangan berupa cahaya, berbunyi, menampilkan icon, atau menampilkan pesan dialog. Sehingga user bisa cepat bertindak pada peristiwa serupa karena memiliki aplikasi yang menggunakan notifications.

2.4.6 Tipe Aplikasi Android

Terdapat tiga kategori aplikasi pada Android yaitu (Meier,


(17)

- Foreground Activity

Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan tetap efektif walaupun tidak terlihat. Aplikasi dengan tipe ini selalu mempertimbangkan siklus hidup activity, sehingga perpindahan antar activity dapat berlangsung dengan lancar. - Background Service

Aplikasi yang memiliki interaksi terbatas dengan user, selain dari pengaturan konfigurasi, semua dari prosesnya tidak tampak pada layar. Contohnya aplikasi penyaringan panggilan atau sms auto respon.

- Intermittent Activity

Aplikasi yang masih membutuhkan beberapa masukkan dari user, namun sebagian sangat efektif jika dijalankan di background dan jika diperlukan akan memberi tahu user tentang kondisi tertentu. Contohnya pemutar musik.

Untuk aplikasi yang kompleks akan sulit untuk menentukan kategori aplikasi tersebut apalagi aplikasi memiliki ciri-ciri dari semua kategori. Oleh karena itu, perlu mempertimbangkan bagaimana aplikasi tersebut digunakan dan menentukan kategori aplikasi yang sesuai.

2.4.7 Siklus Hidup Aplikasi Android

Siklus hidup aplikasi Android dikelola oleh sistem, berdasarkan kebutuhan user, sumber daya yang tersedia, dan sebagainya. Misalnya user ingin menjalankan browser web, pada akhirnya sistem yang akan menentukan menjalankan aplikasi. Sistem sangat berperan dalam menentukan apakah aplikasi


(18)

dijalankan, dihentikan sementara, atau dihentikan sama sekali. Jika

user sedang menjalankan sebuah activity, maka sistem akan memprioritaskan aplikasi tersebut. Sebaliknya, jika suatu activity

tidak terlihat dan sistem membutuhkan sumber daya yang lebih, maka activity yang prioritas rendah akan ditutup (Hashimi, 2009).

Gambar 2.2 Siklus Hidup Activity Android (Burnette, 2009)

User mengatasi method ini pada activity class, dan Android akan memanggilnya menurut waktu yang tepat (Burnette, 2009): - onCreate(Bundle) : Dipanggil ketika activity pertama kali dibuat,

disini user melakukan pengaturan statis secara normal, misal membuat view, memasukkan data dan sebagainya. Method ini mempassing obyek yang berisi status activity sebelumnya, jika status tersebut sebelumnya telah di catat . Selalu diikuti dengan

onStart( ).

- onStart() : Dipanggil sebelum activity terlihat moleh user. Selalu diikuti onResume( ).


(19)

- onResume( ) : Dipanggil sebelum activity mulai berinteraksi dengan user. Pada titik ini, activity berada pada stack activity

yang paling atas. Selalu diikuti onPause( ).

- onPause( ) : Dipanggil ketika sistem akan memulai activity lain.

Method ini biasa digunakan untuk melakukan perubahan yang tidak disimpan kedalam data yang tetap, menghentikan animasi, dan hal lain yang memakai CPU dan yang lainnya. Diikuti

onResume( ) jika activity tetap berada di layar atau onStop( ) jika

activity menjadi tidak terlihat oleh user.

- onStop( ) : Dipanggil ketika activity tidak lagi terlihat oleh user. Ini mungkin terjadi karena kemudian dihancurkan atau jika

activity lain yang sudah ada atau yang baru telah dilanjutkan. Diikuti dengan onRestart( ) jika activity kembali berinteraksi dengan user atau dengan onDestroy( ) jika activity akan ditutup. - onRestart( ) : Dipanggil setelah activity dihentikan, dan

merupakan prioritas untuk di jalankan kembali dan selalu diikuti

onStart( ).

- onDestroy( ) : Dipanggil sebelum activity dihancurkan, ini merupakan panggilan terakhir yang diterima activity. Bisa dikatakan activity diakhiri ( finish( ) ), atau karena sistem secara

temporary menghancurkan instant activity untuk menghemat ruang.

- onSaveInstanceState(Bundle) : Android akan memanggil method

ini untuk mengizinkan activity menyimpan setiap contoh keadaan, seperti posisi kursor dalam sebuah text field. Pada umunya user tidak akan membutuhkan untuk mengatasi


(20)

pelaksanaan penyimpanan keadaan, karena pelaksanaan penyimpanan untuk semua tampilan user dikontrol secara otomatis.

- onRestoreInstanceState(Bundle) : Dipanggil ketika activity di inisialisasi ulang sejak keadaan sebelum disimpan dari onSave-InstanceState( ). Default implementasi dikembalikan dari keadaan tampilan user.

Activity tidak berjalan di dalam bagian yang mungkin akan dihentikan atau proses linux menempatkannya yang mungkin akan dihentikan pada setiap waktu pada setiap perintah untuk membuat tempat activity baru. Sementara itu, method onPause( ) mungkin akan jadi method terakhir yang dipanggil dalam activity.

Android menjalankan setiap aplikasi dalam proses secara terpisah, yang masing-masing memiliki mesin virtual pengolah sendiri, dengan melindungi penggunaan memori pada aplikasi. Selain itu juga Android dapat mengontrol aplikasi mana yang layak menjadi prioritas utama. Karena itu Android sangat sensitive dengan siklus hidup aplikasi dan komponen-komponennya. Gambar 1.2 menunjukkan prioritas dari aplikasi (Meier, 2009).


(21)

Gambar 2.3 Prioritas Aplikasi Berdasarkan Activity (Meier, 2009) - Active Processes (foreground)

Proses yang sedang dibutuhkan oleh user. Suatu proses dipertimbangkan menjadi yang terdepan jika berada pada kondisi (Android Developer, 2011) :

- Menjalankan sebuah activity di mana user sedang berinteraksi dengannya (Method Objek Activity onResume( ) sedang dipanggil).

- Merupakan host service yang terkait dengan activity di mana

user sedang berinteraksi dengannya.

- Memiliki obyek BroadcastReceiver yang mengeksekusi

method onReceive( ).

- Memiliki obyek service yang mengeksekusi satu dari lifecycle callback (onStart(), onCreate(), atau onDestroy()).


(22)

- Visible Processes

Merupakan proses tidak memiliki komponen yang di depan, tetapi tetap mempengaruhi apa yang user lihat dilayar. Proses ini dipertimbangkan menjadi terlihat ketika salah satu dari kedua kondisi ini terjadi :

- Host dari sebuah activity yang tidak berada didepan, teatapi tetap terlihat oleh user (method onPause( ) dipanggil). Ini mungkin terjadi, misalnya, jika activity yang terdepan merupakan dialog yang mengijinkan activity sebelumnya terlihat pada latar belakang.

- Host dari sebuah service yang terikat pada activity yang terlihat.

Proses yang terlihat dipertimbangkan menjadi sangat penting dan tidak akan dimatikan kecuali jika itu diperlukan untuk menjaga foreground berjalan.

- Started Service Processes

Suatu proses service yang menjalankan service dengan method startService ( ) dan tidak berada kedalam salah satu dari dua kategori diatas. Walaupun proses service tidak secara langsung mengikat pada apapun yang dilihat user. Pada umumnya melakukan sesuatu yang dilakukan oleh user seperti memainkan

file.mp3 pada background, atau mendownload data pada network, maka dari itu sistem menjaga mereka tetap berjalan, kecuali memori tidak mencukupi untuk memelihara semua foreground


(23)

- Background Processes

Proses yang memegang suatu activity yang saat ini tidak terlihat oleh user (method obyek onStop( ) dipangil). Proses ini tidak secara langsung berpengaruh kepada user, dan dapat dimatikan kapanpun untuk mengklaim memori untuk proses foreground, terlihat atauproses service. Jika sebuah activity

mengimplementasi method lifecycle secara benar, dan mengcapture status saat itu, mematikan proses tidak membuat

user terganggu.

- Empty Processes

Proses untuk meningkatkan keseluruhan pencapaian sistem, Android sering mempertahankan aplikasi didalam memori setelah mereka sudah mencapai akhir dari umur hidup mereka. Android memelihara cache ini untuk meningkatkan proses start-up

aplikasi ketika kembali dihidupkan atau dipakai. Proses ini secara rutin mematikan ketika diperlukan.

2.4.8 Kelebihan Android

Sudah banyak platform untuk perangkat selular saat ini, termasuk didalamnya Symbian, iPhone, Windows Mobile, Blackberry, Java Mobile Edition, Linux Mobile (LiM0), dan banyak lagi. Namun ada beberapa hal yang menjadi kelebihan Android. Walaupun beberapa fitur-fitur yang ada telah muncul sebelumnya pada platform lain, Android adalah yang pertama menggabungkan hal seperti berikut (Burnette, 2009) :


(24)

- A truly open, free development platform based on Linux and opensource. Developer perangkat menyukai hal ini karena dapat membangun platform yang sesuai yang diinginkan tanpa harus membayar royality. Sementara pengembang software menyukai karena Android dapat digunakan diperangkat manapun dan tanpa terikat oleh vendor manapun.

- A component-based architecture inspired by Internet mashups. Bagian dalam sebuah aplikasi dapat digunakan oleh aplikasi lainnya, bahkan dapat diganti dengan komponen lain yang sesuai dengan aplikasi yang dikembangkan.

- Tons of built-in services out of the box, kemudahan dalam menggunakan berbagai macam layanan pada aplikasi seperti penggunaan layanan pencarian lokasi, database SQL, browser

dan penggunaan peta. Semua sudah tertanam pada Android sehingga memudahkan dalam pengembangan aplikasi.

- Automatic management of the application life cycle, setiap program terjaga antara satu sama lain oleh berbagai lapisan keamanan, sehingga kerja sistem menjadi lebih stabil. User tak perlu takut dalam menggunakan aplikasi pada perangkat yang memiliki memori terbatas.

- High-quality graphics and sound, dengan adanya dukungan 2D

grafis dan animasi yang diilhami oleh Flash menyatu dalam 3D

menggunakan OpenGL memungkinkan membuat aplikasi maupun game yang berbeda.

- Portability across a wide range of current and future hardware, aplikasi dapat digunakan pada perangkat yang ada saat ini


(25)

maupun yang akan datang. Semua program ditulis dengan menggunakan bahasa pemrograman Java dan dieksekusi oleh mesin virtual Dalvik, sehingga kode program portabel antara

ARM, X86, dan arsitektur lainnya. Sama halnya dengan dukungan bermacam cara inputan seperti penggunaan keyboard, layar sentuh, trackball dan resolusi layar semua dapat disesuaikan dengan program.

2.5

Class

MediaPlayer

Android

Gambar 2.4 Diagram Bagian Mediaplayer dari Android API Reference (Every, 2009).


(26)

Kontrol playback audio atau video file dan arus dikelola sebagai bagian dari mesin. Gambar 2.4 menunjukkan siklus hidup dan bagian-bagian dari objek MediaPlayer yang dikendalikan oleh pengoperasian pemutaran yang didukung oleh kontrol. Bentuk lengkung mewakili bagian MediaPlayer, dapat berada didalam lengkungan mewakili operasi untuk mengontrol pemutaran yang mendorong transisi keadaan objek. Ada dua jenis lengkungan. Tanda panah dengan ujung tunggal mewakili metode panggilan sinkron, sementara tanda panah dengan ujung ganda merupakan pemanggilan metode asynchronous (Android Developer, 2011).

Diagram Bagian Mediaplayer dari Android API Reference

dapat dilihat bahwa objek MediaPlayer memiliki keadaan berikut: - Ketika sebuah objek MediaPlayer hanya dibuat menggunakan

new atau setelah reset() dipanggil, itu adalah dalam keadaan

idle, dan setelah release() dipanggil merupakan bagian akhir. Antara dua bagian siklus hidup dari objek MediaPlayer.

- Ada sedikit perbedaan penting antara objek MediaPlayer

baru dibangun dan objek MediaPlayer setelah reset()

dipanggil. Apaila terjadi kesalahan dalam menuliskan kode, maka membutuhkan metode seperti

getCurrentPosition(),getDuration(),getVideoHeight(),getV ideoWidth(),setAudioStreamType(int),setLooping(boolean ),setVolume(float, float), pause(), start(), stop(), seekTo(int), prepare() or prepareAsync() dalam keadaan

idle untuk kedua kasus. Jika salah satu metode ini benar setelah objek MediaPlayer dibangun, user disediakan


(27)

metode callbackOnErrorListener.onError dan tidak akan dipanggil oleh mesin pemutar internal dan bagian objek tetap tidak akan berubah, tetapi jika metode ini disebut tepat setelah reset(), user disediakan metode callback OnErrorListener.onError() dan akan dipanggil oleh mesin pemutar internal dan objek akan ditransfer ke bagian kesalahan.

- Selanjutnya, objek yang dibuat menggunakan

MediaPlayer baru berada di bagian Idle, sementara itu yang dibuat dengan salah satu kelebihan beban menciptakan metode yang nyaman tidak dalam keadaan

idle. Bahkan, objek berada dalam keadaan prepared jika dibuat menggunakan metode create sukses.

- Secara umum, beberapa operasi mengontrol pemutaran mungkin tidak berfungsi karena berbagai alasan, seperti tidak didukung audio / video format, buruknya interleaved audio / video, resolusi terlalu tinggi, streaming timeout, dan sejenisnya. Dengan demikian, kesalahan pelaporan dan pemulihan merupakan perhatian penting dalam situasi seperti ini. Terkadang karena kesalahan pemrograman, memanggil operasi kontrol playback dalam keadaan tidak valid juga dapat terjadi. Di dalam semua kondisi kesalahan, mesin pemutar internal meminta user untuk memanggil metode

OnErrorListener.onError(), jika OnErrorListener telah didaftarkan terlebih dahulu melalui


(28)

setOnErrorListener(android.media.MediaPlayer. OnErrorListener).

- Saat terjadi kesalahan, objek MediaPlayer masuk dalam keadaan Error (kecuali seperti yang disebutkan di atas), bahkan jika kesalahan error listener belum terdaftar oleh aplikasi.

- Perintah untuk menggunakan kembali objek MediaPlayer

dalam keadaan Error dan mengembalikan dari error,

reset() dapat dipanggil untuk mengembalikan objek ke keadaan idle sebelumnya.

- IllegalStateException dieksekusi untuk mencegah kesalahan pemrograman seperti memanggil prepare(), prepareAsync(), atau salah satu kelebihan beban

setDataSource metode dalam keadaan tidak valid.

- Memanggil setDataSource(FileDescriptor), atau

setDataSource(String), atau setDataSource(Context, Uri), atau

setDataSource(FileDescriptor, long, long) transfer objek

MediaPlayer dalam keadaan idle ke keadaan diinisialisasi. - IllegalStateException akan dieksekusi jika

setDataSource() dipanggil di bagian lain.

- IllegalArgumentException dan IOException mungkin dibuang dari metode setDataSource karena overload.

- Sebuah objek MediaPlayer harus terlebih dahulu memasukkan keadaan prepared sebelum pemutaran dapat dimulai.


(29)

- Ada dua cara (synchronous vs. asynchronous) bahwa bagian prepared dapat dihubungi, baik panggilan untuk

prepare() (synchronous) yang mentransfer objek untuk bagian prepared setelah metode kembali dipanggil, atau panggilan untuk prepareAsync() (asynchronous) yang pertama transfer objek untuk bagian preparing setelah panggilan ulang (yang terjadi hampir benar) sedangkan mesin pemutar internal yang terus bekerja pada persiapan sisa pekerjaan hingga pekerjaan persiapan selesai. Ketika persiapan selesai atau saat prepared() mengembalikan panggilan, mesin pemutar internal kemudian dipanggil, user disediakan metode callback onPrepared() dari

interface OnPreparedListener, jika suatu

OnPreparedListener terdaftar terlebih dahulu melalui

setOnPreparedListener(Android.media.MediaPalayer.On PreparedListener).

- preparing merupakan keadaan sementara, dan tindakan memanggil banyak metode dapat berakibat objek

MediaPlayer dalam keadaan preparing tidak terdefinisi. - IllegalStateException akan dieksekusi jika prepare() atau

prepareAsync() dipanggil di bagian lain.

- Sementara di bagian prepaed, properti seperti volume audio / suara, screenOnWhilePlaying, perulangan dapat disesuaikan dengan menerapkan metode yang sesuai. - Untuk memulai pemutaran, start() harus dipanggil. Setelah


(30)

keadaan Started. isPlaying() dapat dipanggil untuk menguji apakah objek MediaPlayer dalam keadaan Started.

- Sementara dalam keadaan started, mesin pemutar internal memanggil OnBufferingUpdateListener. onBufferingUpdate() yang disediakan user metode

callback jika OnBufferingUpdateListener telah terdaftar terlebih dahulu melalui setOnBufferingUpdateListener (OnBufferingUpdateListener). Panggilan balik ini memungkinkan aplikasi untuk melacak keadaan buffering

sementara streaming audio / video.

- Memanggil start() tidak berpengaruh pada objek

MediaPlayer yang sudah dalam keadaan Started.

- Pemutaran dalam keadaan Paused dan Stopped, dan posisi pemutaran saat ini dapat disesuaikan. Pemutaran dapat di hentikan sementara melalui pause(). Ketika panggilan untuk kembali pause(), objek MediaPlayer memasuki keadaan dihentikan sementara. Pada transisi dari bagian start bagian

puase dan sebaliknya terjadi asynchronous dalam mesin pemutar. Sehingga diperlukan beberapa waktu sebelum bagian diperbarui dalam panggilan untuk isPlaying (), dan dapat menjadi jumlah detik dalam kasus konten streaming.

- Memanggil start() untuk melanjutkan pemutaran objek

MediaPlayer yang Paused, dan posisi pemutaran kembali sama seperti saat paused. Ketika panggilan untuk


(31)

mengembalikan start(), objek paused MediaPlayer

kembali ke keadaan Started.

- Memanggil pause() tidak memiliki pengaruh pada objek

MediaPlayer yang sudah dalam keadaan paused.

- Memanggil stop() untuk menghentikan pemutaran dan menyebabkan MediaPlayer dalam keadaan Started, Paused,

Prepared atau PlaybackCompleted untuk memasuki bagian

Stopped.

- Setelah di bagian Stopped, pemutaran tidak dapat dimulai sampai prepare() atau prepareAsync() dipanggil untuk mengatur objek MediaPlayer ke bagian Prepared lagi. - Memanggil stop() tidak memiliki pengaruh pada objek

MediaPlayer yang sudah dalam keadaan Stopped.

- Posisi pemutaran dapat disesuaikan dengan panggilan untuk

seekTo(int).

- Meskipun asynchronuous seekTo(int) dipanggil kembali dengan cara yang benar, operasi seek biasanya digunakan sebelum selesai, terutama untuk audio / video-streaming. Ketika operasi aktual seek selesai, mesin pemutar panggilan internal meminta user menyediakan

OnSeekComplete.onSeekComplete() jika

OnSeekCompleteListener yang telah terdaftar sebelumnya

melalui setOnSeekCompleteListener


(32)

- seekTo(int) juga dapat disebut di bagian-bagian lain, seperti bagian Prepared, Paused dan PlaybackCompleted. - Selanjutnya, posisi pemutaran aktual saat ini dapat diambil

dengan panggilan getCurrentPosition(), yang sangat membantu untuk aplikasi seperti pemutar musik yang perlu untuk melacak progress pemutaran.

- Bila pemutaran mencapai ujung stream, selanjutnya pemutaran akan selesai.

- Jika modus perulangan sedang diatur untuk truewith setLooping(boolean), objek MediaPlayer akan tetap pada bagian Started.

- Jika modus perulangan ditetapkan ke false, mesin pemutar panggilan user disediakan metode callback,

OnCompletion.onCompletion(), jika suatu

OnCompletionListener terdaftar terlebih dahulu melalui

setOnCompletionListener(OnCompletionListener),

melibatkan sinyal dari objek callback yang sekarang dalam keadaan PlaybackCompleted.

- Ketika dalam keadaan PlaybackCompleted, memanggil

start() bisa mengembalikan pemutaran kembali dari awal sumber audio / video.


(1)

metode callbackOnErrorListener.onError dan tidak akan dipanggil oleh mesin pemutar internal dan bagian objek tetap tidak akan berubah, tetapi jika metode ini disebut tepat setelah reset(), user disediakan metode callback OnErrorListener.onError() dan akan dipanggil oleh mesin pemutar internal dan objek akan ditransfer ke bagian kesalahan.

- Selanjutnya, objek yang dibuat menggunakan MediaPlayer baru berada di bagian Idle, sementara itu yang dibuat dengan salah satu kelebihan beban menciptakan metode yang nyaman tidak dalam keadaan idle. Bahkan, objek berada dalam keadaan prepared jika dibuat menggunakan metode create sukses.

- Secara umum, beberapa operasi mengontrol pemutaran mungkin tidak berfungsi karena berbagai alasan, seperti tidak didukung audio / video format, buruknya interleaved audio / video, resolusi terlalu tinggi, streaming timeout, dan sejenisnya. Dengan demikian, kesalahan pelaporan dan pemulihan merupakan perhatian penting dalam situasi seperti ini. Terkadang karena kesalahan pemrograman, memanggil operasi kontrol playback dalam keadaan tidak valid juga dapat terjadi. Di dalam semua kondisi kesalahan, mesin pemutar internal meminta user untuk memanggil metode OnErrorListener.onError(), jika OnErrorListener telah didaftarkan terlebih dahulu melalui


(2)

setOnErrorListener(android.media.MediaPlayer. OnErrorListener).

- Saat terjadi kesalahan, objek MediaPlayer masuk dalam keadaan Error (kecuali seperti yang disebutkan di atas), bahkan jika kesalahan error listener belum terdaftar oleh aplikasi.

- Perintah untuk menggunakan kembali objek MediaPlayer dalam keadaan Error dan mengembalikan dari error, reset() dapat dipanggil untuk mengembalikan objek ke keadaan idle sebelumnya.

- IllegalStateException dieksekusi untuk mencegah kesalahan pemrograman seperti memanggil prepare(), prepareAsync(), atau salah satu kelebihan beban setDataSource metode dalam keadaan tidak valid.

- Memanggil setDataSource(FileDescriptor), atau setDataSource(String), atau setDataSource(Context, Uri), atau setDataSource(FileDescriptor, long, long) transfer objek MediaPlayer dalam keadaan idle ke keadaan diinisialisasi.

- IllegalStateException akan dieksekusi jika

setDataSource() dipanggil di bagian lain.

- IllegalArgumentException dan IOException mungkin dibuang dari metode setDataSource karena overload.

- Sebuah objek MediaPlayer harus terlebih dahulu memasukkan keadaan prepared sebelum pemutaran dapat dimulai.


(3)

- Ada dua cara (synchronous vs. asynchronous) bahwa bagian prepared dapat dihubungi, baik panggilan untuk prepare() (synchronous) yang mentransfer objek untuk bagian prepared setelah metode kembali dipanggil, atau panggilan untuk prepareAsync() (asynchronous) yang pertama transfer objek untuk bagian preparing setelah panggilan ulang (yang terjadi hampir benar) sedangkan mesin pemutar internal yang terus bekerja pada persiapan sisa pekerjaan hingga pekerjaan persiapan selesai. Ketika persiapan selesai atau saat prepared() mengembalikan panggilan, mesin pemutar internal kemudian dipanggil, user disediakan metode callback onPrepared() dari

interface OnPreparedListener, jika suatu

OnPreparedListener terdaftar terlebih dahulu melalui setOnPreparedListener(Android.media.MediaPalayer.On PreparedListener).

- preparing merupakan keadaan sementara, dan tindakan memanggil banyak metode dapat berakibat objek MediaPlayer dalam keadaan preparing tidak terdefinisi. - IllegalStateException akan dieksekusi jika prepare() atau

prepareAsync() dipanggil di bagian lain.

- Sementara di bagian prepaed, properti seperti volume audio / suara, screenOnWhilePlaying, perulangan dapat disesuaikan dengan menerapkan metode yang sesuai.

- Untuk memulai pemutaran, start() harus dipanggil. Setelah start() berhasil dikembalikan, objek MediaPlayer dalam


(4)

keadaan Started. isPlaying() dapat dipanggil untuk menguji apakah objek MediaPlayer dalam keadaan Started.

- Sementara dalam keadaan started, mesin pemutar internal memanggil OnBufferingUpdateListener. onBufferingUpdate() yang disediakan user metode callback jika OnBufferingUpdateListener telah terdaftar terlebih dahulu melalui setOnBufferingUpdateListener (OnBufferingUpdateListener). Panggilan balik ini memungkinkan aplikasi untuk melacak keadaan buffering sementara streaming audio / video.

- Memanggil start() tidak berpengaruh pada objek MediaPlayer yang sudah dalam keadaan Started.

- Pemutaran dalam keadaan Paused dan Stopped, dan posisi pemutaran saat ini dapat disesuaikan. Pemutaran dapat di hentikan sementara melalui pause(). Ketika panggilan untuk kembali pause(), objek MediaPlayer memasuki keadaan dihentikan sementara. Pada transisi dari bagian start bagian puase dan sebaliknya terjadi asynchronous dalam mesin pemutar. Sehingga diperlukan beberapa waktu sebelum bagian diperbarui dalam panggilan untuk isPlaying (), dan dapat menjadi jumlah detik dalam kasus konten streaming.

- Memanggil start() untuk melanjutkan pemutaran objek MediaPlayer yang Paused, dan posisi pemutaran kembali sama seperti saat paused. Ketika panggilan untuk


(5)

mengembalikan start(), objek paused MediaPlayer kembali ke keadaan Started.

- Memanggil pause() tidak memiliki pengaruh pada objek MediaPlayer yang sudah dalam keadaan paused.

- Memanggil stop() untuk menghentikan pemutaran dan menyebabkan MediaPlayer dalam keadaan Started, Paused, Prepared atau PlaybackCompleted untuk memasuki bagian Stopped.

- Setelah di bagian Stopped, pemutaran tidak dapat dimulai sampai prepare() atau prepareAsync() dipanggil untuk mengatur objek MediaPlayer ke bagian Prepared lagi. - Memanggil stop() tidak memiliki pengaruh pada objek

MediaPlayer yang sudah dalam keadaan Stopped.

- Posisi pemutaran dapat disesuaikan dengan panggilan untuk seekTo(int).

- Meskipun asynchronuous seekTo(int) dipanggil kembali dengan cara yang benar, operasi seek biasanya digunakan sebelum selesai, terutama untuk audio / video-streaming. Ketika operasi aktual seek selesai, mesin pemutar panggilan internal meminta user menyediakan

OnSeekComplete.onSeekComplete() jika

OnSeekCompleteListener yang telah terdaftar sebelumnya

melalui setOnSeekCompleteListener


(6)

- seekTo(int) juga dapat disebut di bagian-bagian lain, seperti bagian Prepared, Paused dan PlaybackCompleted. - Selanjutnya, posisi pemutaran aktual saat ini dapat diambil

dengan panggilan getCurrentPosition(), yang sangat membantu untuk aplikasi seperti pemutar musik yang perlu untuk melacak progress pemutaran.

- Bila pemutaran mencapai ujung stream, selanjutnya pemutaran akan selesai.

- Jika modus perulangan sedang diatur untuk truewith setLooping(boolean), objek MediaPlayer akan tetap pada bagian Started.

- Jika modus perulangan ditetapkan ke false, mesin pemutar panggilan user disediakan metode callback,

OnCompletion.onCompletion(), jika suatu

OnCompletionListener terdaftar terlebih dahulu melalui setOnCompletionListener(OnCompletionListener),

melibatkan sinyal dari objek callback yang sekarang dalam keadaan PlaybackCompleted.

- Ketika dalam keadaan PlaybackCompleted, memanggil start() bisa mengembalikan pemutaran kembali dari awal sumber audio / video.


Dokumen yang terkait

Institutional Repository | Satya Wacana Christian University: Implementasi Kriptografi AES untuk Aplikasi Chatting Sistem Jejaring Klaster Berbasis Android T1 672010219 BAB II

0 0 9

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Objek Wisata Kabupaten Poso Berbasis Android T1 672006703 BAB I

0 0 5

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Objek Wisata Kabupaten Poso Berbasis Android T1 672006703 BAB II

0 0 8

Institutional Repository | Satya Wacana Christian University: Aplikasi Gamelan Menggunakan Virtual Buttons Pada Teknologi Augmented Reality Berbasis Android

0 0 2

Institutional Repository | Satya Wacana Christian University: Perancangan Aplikasi Simulasi TracingAlumni Berbasis Android T1 672007256 BAB II

0 0 7

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Virtual Gamelan Berbasis Android

0 0 18

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Virtual Gamelan Berbasis Android T1 672007003 BAB I

0 0 6

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Virtual Gamelan Berbasis Android T1 672007003 BAB IV

0 0 39

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Virtual Gamelan Berbasis Android T1 672007003 BAB V

0 0 2

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Virtual Gamelan Berbasis Android

0 0 14