Membuat Music Player di SKETCHWARE
Untuk membuat aplikasi Music Player di sketchware, ikuti langkah-langkah yang diberikan di bawah ini.
1. Buat proyek baru di Sketchware.
2. Di area LIHAT pada main.xml, tambahkan ListView listview1 dengan tinggi wrap_content, dan berat 1. Tambahkan SeekBar seekbar1 , ImageView imageview1 , dan tiga TextView teksview1 , textview2 , dan textview3 , seperti yang ditunjukkan pada gambar di bawah ini.
3. Buat CustomView mycustom.xml dan tambahkan TextView textview1 , dan ImageView imageview1 di dalamnya. Untuk listview1 pilih mycustom.xml sebagai customView.
4. Tambahkan komponen MediaPlayer mp , komponen Preferensi Bersama sp: sp dan timer komponen Timer .
5. Buat enam Lebih Blok MPcreate (pos), MPstart , dan MPpause untuk MediaPlayer dan searchFolders , getFileList di [FilePath] dan ekstra .
6. Tambahkan tiga variabel angka n, r dan songPosition , dan lima variabel String currentfile , songMinutes , songSeconds , folder , folderName .
Juga tambahkan folder List String List , List String fileList dan allmusic List Map .
7. Dalam acara onCreate , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Buat imageview1 dan progressbar1 GONE .
ii. Tetapkan SongPosition ke -1 .
aku aku aku. Jika kunci preferensi bersama "allsongs" kosong, panggil AsyncTask GetSongsTask menggunakan kode berikut:
(new GetSongsTask()).execute();
i. Buat imageview1 dan progressbar1 GONE .
ii. Tetapkan SongPosition ke -1 .
aku aku aku. Jika kunci preferensi bersama "allsongs" kosong, panggil AsyncTask GetSongsTask menggunakan kode berikut:
(GetSongsTask baru ()) .eksekusi ();
iv. Jika kunci preferensi bersama "allsongs" tidak kosong, dapatkan semua data dari preferensi bersama kunci sp " allsongs " dan konversi ke allmusic Map Map . Tampilkan ListMap allmusicdi listview1 .
8. Dalam listview1 padaBindCustomView acara, gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kita mendapatkan nama file file mp3 di List Map allmusic dan menampilkannya di textview1 dari CustomView.
9. Dalam lebih banyak blok MPcreate (pos) , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Atur String currentfile ke file path lagu pada pos di allmusic List Map .
ii. Dapatkan nama lagu dari file saat ini dan tampilkan di textview3 .
aku aku aku. Jadikan imageview1 terlihat .
iv. Setel songPosisi ke pos .
v. Buat MediaPlayer untuk currentfilemenggunakan kode berikut:
mp = MediaPlayer.create(getApplicationContext(), Uri.fromFile(new java.io.File(currentfile)));
vi. Setel OnCompletionListener untuk MediaPlayer menggunakan kode berikut:
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer theMediaPlayer){
vii. Setelah menyelesaikan lagu, setel ulang dan lepaskan MediaPlayer, tambah SongPosisi sebanyak 1, lalu buat MediaPlayer untuk SongPosisi yang baru dan mulai MediaPlayer.
viii. Tutup MediaPlayer OnCompletionListener menggunakan kode berikut:
}
});
ix. Setel Seekbar maks ke durasi lagu.
x. Tampilkan durasi lagu di textview2 .
10. Dalam lebih banyak blok MPstart , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Mulai mainkan lagu menggunakan blok MediaPlayer start.
ii. Tampilkan jeda gambar dalam imageview1 .
aku aku aku. Gunakan TimerTask , dan setiap 400 ms mengatur kemajuan seekbar1 ke durasi lagu saat ini, dan menampilkan durasi lagu saat ini di textview1 .
11. Dalam lebih banyak blok MPpause , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Batalkan Timer.
ii. Jeda MediaPlayer.
aku aku aku. Tampilkan gambar putar di imageview1 .
12. Dalam event listview1 onItemClicked , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Jika songPosition adalah -1 , buat MediaPlayer untuk lagu di posisi ListView diklik, dan mulai mainkan lagunya.
ii. Jika songPosisi sama dengan posisi ListView diklik, jeda lagu jika diputar dan mainkan lagu jika ditunda.
aku aku aku. Jika posisi ListView diklik berbeda dari songPosition ,
a. jika ada lagu yang diputar maka jeda lagu tersebut,
b. atur ulang MediaPlayer,
c. lepaskan lagu dari MediaPlayer,
d. MembuatMediaPlayer untuk lagu di posisiListView diklik, dan
e. Mulai mainkan lagunya.
13. Dalam event seekbar1 onStopTrackingTouch , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini jika songPosition bukan -1, mainkan lagu dari durasi yang dipilih di seekbar
14. Di acara imageview1 onClick , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kita menjeda lagu jika diputar dan memutar lagu jika dijeda.
15. Dalam event imageview2 onClick , gunakan panggilan AsyncTask GetSongsTask menggunakan kode berikut:
(new GetSongsTask()).execute();
16. Dalam kejadian onPause atau onStop gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini jika songPosition bukan -1, dan jika MediaPlayer diputar, maka jeda lagu tersebut.
PENTING ** **
Jika langkah ini menyebabkan kesalahan atau crash, lewati langkah ini. Juga jika Anda ingin terus memutar lagu di latar belakang, lewati langkah ini.
17. Di Extra Block lainnya , gunakan kode dan blok seperti yang ditunjukkan di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Tentukan kelas baru GetSongsTask AsyncTask.
} Kelas privat GetSongsTask meluas AsyncTask <Void, Void, Void> { @ Override void dilindungi onPreExecute () {
ii. Di onPreExecute , buat imageview2 GONE dan progressbar1 VISIBLE .Gunakan kode berikut:
iii. Use following code:
}
@Override
protected Void doInBackground(Void... path) {
iv. Dalam doInBackground metode, menetapkan nomor r ke 0, yang jelas allmusic , jelas folderList . Kemudian gunakan getFileList di [filePath]
blokir untuk mendapatkan lintasan semua lagu dari penyimpanan eksternal ke ListMap allmusic.
Setelah itu konversi ListMap allmusic ke Json String dan simpan di preferensi bersama menggunakan kunci " allsongs ".
v. Gunakan kode untuk mengikuti onProgressUpdate dan onPostExecute metode.
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
}
@Override
protected void onPostExecute(Void param){
dan progressbar1 GONE . Tampilkan ListMap allmusic dalam listview1. Bersulang jumlah lagu yang ditambahkan.
vii. Gunakan kode berikut:
}
18. Tentukan Lebih Banyak Blok getFileList di [filePath] menggunakan blok seperti yang ditunjukkan pada gambar di bawah.
19. Tentukan Lebih Banyak Blok cariFolder menggunakan blok seperti ditunjukkan pada gambar di bawah.
20. Simpan dan Jalankan proyek. Aplikasi Music Player sudah siap.
1. Buat proyek baru di Sketchware.
2. Di area LIHAT pada main.xml, tambahkan ListView listview1 dengan tinggi wrap_content, dan berat 1. Tambahkan SeekBar seekbar1 , ImageView imageview1 , dan tiga TextView teksview1 , textview2 , dan textview3 , seperti yang ditunjukkan pada gambar di bawah ini.
4. Tambahkan komponen MediaPlayer mp , komponen Preferensi Bersama sp: sp dan timer komponen Timer .
5. Buat enam Lebih Blok MPcreate (pos), MPstart , dan MPpause untuk MediaPlayer dan searchFolders , getFileList di [FilePath] dan ekstra .
Juga tambahkan folder List String List , List String fileList dan allmusic List Map .
7. Dalam acara onCreate , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
i. Buat imageview1 dan progressbar1 GONE .
ii. Tetapkan SongPosition ke -1 .
aku aku aku. Jika kunci preferensi bersama "allsongs" kosong, panggil AsyncTask GetSongsTask menggunakan kode berikut:
(new GetSongsTask()).execute();
i. Buat imageview1 dan progressbar1 GONE .
ii. Tetapkan SongPosition ke -1 .
aku aku aku. Jika kunci preferensi bersama "allsongs" kosong, panggil AsyncTask GetSongsTask menggunakan kode berikut:
(GetSongsTask baru ()) .eksekusi ();
iv. Jika kunci preferensi bersama "allsongs" tidak kosong, dapatkan semua data dari preferensi bersama kunci sp " allsongs " dan konversi ke allmusic Map Map . Tampilkan ListMap allmusicdi listview1 .
8. Dalam listview1 padaBindCustomView acara, gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kita mendapatkan nama file file mp3 di List Map allmusic dan menampilkannya di textview1 dari CustomView.
9. Dalam lebih banyak blok MPcreate (pos) , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
i. Atur String currentfile ke file path lagu pada pos di allmusic List Map .
ii. Dapatkan nama lagu dari file saat ini dan tampilkan di textview3 .
aku aku aku. Jadikan imageview1 terlihat .
iv. Setel songPosisi ke pos .
v. Buat MediaPlayer untuk currentfilemenggunakan kode berikut:
mp = MediaPlayer.create(getApplicationContext(), Uri.fromFile(new java.io.File(currentfile)));
vi. Setel OnCompletionListener untuk MediaPlayer menggunakan kode berikut:
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer theMediaPlayer){
vii. Setelah menyelesaikan lagu, setel ulang dan lepaskan MediaPlayer, tambah SongPosisi sebanyak 1, lalu buat MediaPlayer untuk SongPosisi yang baru dan mulai MediaPlayer.
viii. Tutup MediaPlayer OnCompletionListener menggunakan kode berikut:
}
});
ix. Setel Seekbar maks ke durasi lagu.
x. Tampilkan durasi lagu di textview2 .
10. Dalam lebih banyak blok MPstart , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Mulai mainkan lagu menggunakan blok MediaPlayer start.
ii. Tampilkan jeda gambar dalam imageview1 .
aku aku aku. Gunakan TimerTask , dan setiap 400 ms mengatur kemajuan seekbar1 ke durasi lagu saat ini, dan menampilkan durasi lagu saat ini di textview1 .
11. Dalam lebih banyak blok MPpause , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Batalkan Timer.
ii. Jeda MediaPlayer.
aku aku aku. Tampilkan gambar putar di imageview1 .
12. Dalam event listview1 onItemClicked , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Jika songPosition adalah -1 , buat MediaPlayer untuk lagu di posisi ListView diklik, dan mulai mainkan lagunya.
ii. Jika songPosisi sama dengan posisi ListView diklik, jeda lagu jika diputar dan mainkan lagu jika ditunda.
aku aku aku. Jika posisi ListView diklik berbeda dari songPosition ,
a. jika ada lagu yang diputar maka jeda lagu tersebut,
b. atur ulang MediaPlayer,
c. lepaskan lagu dari MediaPlayer,
d. MembuatMediaPlayer untuk lagu di posisiListView diklik, dan
e. Mulai mainkan lagunya.
13. Dalam event seekbar1 onStopTrackingTouch , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
14. Di acara imageview1 onClick , gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
Di sini kita menjeda lagu jika diputar dan memutar lagu jika dijeda.
15. Dalam event imageview2 onClick , gunakan panggilan AsyncTask GetSongsTask menggunakan kode berikut:
(new GetSongsTask()).execute();
16. Dalam kejadian onPause atau onStop gunakan blok seperti yang ditunjukkan pada gambar di bawah ini.
PENTING ** **
Jika langkah ini menyebabkan kesalahan atau crash, lewati langkah ini. Juga jika Anda ingin terus memutar lagu di latar belakang, lewati langkah ini.
17. Di Extra Block lainnya , gunakan kode dan blok seperti yang ditunjukkan di bawah ini.
Di sini kami melakukan tindakan berikut:
i. Tentukan kelas baru GetSongsTask AsyncTask.
} Kelas privat GetSongsTask meluas AsyncTask <Void, Void, Void> { @ Override void dilindungi onPreExecute () {
ii. Di onPreExecute , buat imageview2 GONE dan progressbar1 VISIBLE .Gunakan kode berikut:
iii. Use following code:
}
@Override
protected Void doInBackground(Void... path) {
iv. Dalam doInBackground metode, menetapkan nomor r ke 0, yang jelas allmusic , jelas folderList . Kemudian gunakan getFileList di [filePath]
blokir untuk mendapatkan lintasan semua lagu dari penyimpanan eksternal ke ListMap allmusic.
Setelah itu konversi ListMap allmusic ke Json String dan simpan di preferensi bersama menggunakan kunci " allsongs ".
v. Gunakan kode untuk mengikuti onProgressUpdate dan onPostExecute metode.
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
}
@Override
protected void onPostExecute(Void param){
dan progressbar1 GONE . Tampilkan ListMap allmusic dalam listview1. Bersulang jumlah lagu yang ditambahkan.
vii. Gunakan kode berikut:
}
18. Tentukan Lebih Banyak Blok getFileList di [filePath] menggunakan blok seperti yang ditunjukkan pada gambar di bawah.
19. Tentukan Lebih Banyak Blok cariFolder menggunakan blok seperti ditunjukkan pada gambar di bawah.
20. Simpan dan Jalankan proyek. Aplikasi Music Player sudah siap.























Untuk menampilkan bagian lirik nya gimna bang, dan untuk ambil file nya tuh dari sound atau dari file.?
BalasHapus