Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. ActionScript
Code

Buat Pemain MP3 Mudah dan Menarik

by
Difficulty:IntermediateLength:LongLanguages:

Malay (Melayu) translation by Kaustina Nurul Ilmi (you can also view the original English article)

Kami akan membina pemain mp3 mudah yang boleh anda benamkan dalam mana-mana laman web (contohnya laman utama band). Dengan mengikuti tut anda, anda akan belajar bagaimana untuk mengimport grafik Illustrator, cara membina sprite butang dengan movieclips dan cara menggunakan kelas Timer dan Bunyi. Di sini kita pergi ..




Bermula

Mula-mula saya akan meneruskan apa yang kita perlukan untuk menyelesaikan tutorial ini:

Saya telah menggunakan kelas parti ke-3 Caurina Tweener untuk tween elemen pada skrin. Ini tidak diperlukan kerana anda boleh menggunakan kelas tween Flash sendiri untuk melakukan pekerjaan yang sama. Tween Lite adalah tweener parti lain yang mungkin anda dengar. Ia kelas tween yang sangat kuat yang boleh digunakan untuk projek ini jika anda mahu.

  • Kod sumber termasuk satu fail mp3 yang kami perlukan: Tarzan berteriak hebat :). Anda juga boleh menggunakan mp3 anda sendiri jika anda suka.
  • Juga dalam kod sumber anda akan menemui direktori "ai" yang mengandungi fail simplemp3player.ai. Fail ini merangkumi semua grafik untuk pemain.
  • Akhir sekali saya telah memasukkan fon yang kami perlukan. Ia dipanggil 04b03 dan ia adalah fon bitmap. Pasang dan anda sudah bersedia untuk pergi.

Langkah 1: Buat Fail Baru

Mula-mula anda perlu membuat dokumen Flash Actionscript 3.0 baru. Anda tidak perlu menyesuaikan mana-mana harta dokumen.

Pergi ke Flash> Pilihan> Pengimport fail AI di Mac atau Edit> Keutamaan> Pengimport fail AI di Windows. Pastikan anda mempunyai tetapan berikut:

Simpan dan sebut nama "SimpleMP3Player.fla". Juga salin direktori "caurina" dan "tarzan.mp3" ke tempat yang sama seperti fail .fla anda.

Langkah 2: Import Fail Illustrator

Sekarang kami bersedia untuk mengimport fail Illustrator. Pergi ke Fail> Import> Import ke Peringkat. Cari "simplemp3player.ai" dari direktori sumber "ai" direktori, tekan OK dan anda akan mendapat skrin seperti yang ditunjukkan di bawah. Tetapkan Konversi ke lapisan "Lapisan Flash" supaya anda mendapatkan semua lapisan yang terdapat di dalam fail ai secara langsung ke Flash. Dua pilihan berikut, seperti yang ditunjukkan dalam imej, letakkan semua karya seni kepada koordinat yang sama seperti dalam fail ai dan ubah saiz dokumen Flash anda dengan ukuran yang kami perlukan.

Apabila anda mengklik OK dalam dialog import, dokumen anda harus kelihatan seperti imej yang ditunjukkan di atas.

Langkah 3: Buat Button Sprite

Anda mungkin melihat butang main dan jeda dalam imej terakhir. Mereka akan menjadi sprite butang kami yang mengawal bunyi. Semua butang dikumpulkan ke dalam satu kumpulan.

Pilih hanya kumpulan butang dan tekan F8 untuk mendapatkan skrin "Menukar ke simbol". Beri nama "butang" dan pastikan anda telah memilih MovieClip sebagai jenis. Tetapkan pendaftaran ke sudut kiri atas dan klik OK. Beralih kepada panel Properties dan berikan objek sebagai "contoh" nama. Imej di bawah menggambarkan langkah-langkah ini secara visual:

Kami mempunyai butang kami dalam satu movieclip, tetapi topeng tidak termasuk. Kami memerlukan satu lagi movieclip untuk mengikat mereka semua bersama-sama.

Pilih butang movieclip dan objek topeng. Sekali lagi tekan F8 dan sekarang beri nama "buttonSprite". Juga ingat untuk memberikan nama contoh. Kali ini "bs" (saya tahu apa yang anda fikirkan, tetapi ini adalah singkatan dari ButtonSprite).

Langkah 4: Manual Masking

Kini sprite butang kami hampir siap untuk rock. Apa yang perlu kita lakukan adalah topeng itu sehingga ia hanya menunjukkan satu butang pada suatu masa.

Klik dua kali butang movieclip anda. Buat lapisan baru di atas lapisan aktif dan namakannya "topeng". Pilih objek topeng dan potong menggunakan "Cmd + X" pada Mac atau "Ctrl + X" pada Windows. Pilih lapisan topeng dan tampal menggunakan "Cmd + V" pada Mac atau "Ctrl + V" pada Windows. Pilih lapisan topeng dan tampal menggunakan "Cmd + V" pada Mac atau "Ctrl + V" pada Windows. Tidak kira di mana objek topeng anda adalah kerana seterusnya kami menyelaraskannya ke tempat yang betul.

Dengan topeng anda masih dipilih buka panel Align (Tetingkap> Align) dan pastikan butang "Untuk panggung" ditekan. Sekarang tekan butang "Align edge" dan "Align edge edge" dan objek topeng anda sekarang berada di posisi yang betul, sudut kiri atas movieclip anda.

Satu-satunya perkara yang perlu dilakukan ialah menanggalkan butang. Klik kanan di atas lapisan topeng dan pilih Mask.

Anda dapat melihat kesan serta-merta; hanya satu butang yang dapat dilihat.

Langkah 5: Mula Membuat Paparan

Mari lupakan butang untuk seketika dan tumpukan pada paparan pemain MP3. Saya akan menunjukkan kepada anda cara membina elemen paparan ini secara manual. Ia boleh dilakukan dengan AS3, sudah tentu, tapi mari kita lakukan secara manual kali ini.

Pertama pilih elemen topeng dari lapisan topeng. Tukar ia ke movieclip dan beri nama "displayMask". Gunakan nama ini sebagai nama contoh juga. Topeng untuk paparan siap, jadi sembunyikan lapisan Seterusnya, buat lapisan antara lapisan butang dan lapisan topeng. Namakannya "teks". Pilih alat Teks dari palet Alat dan gunakan opsyen yang ditunjukkan dalam imej di bawah:

Langkah 6: Tambah Textfields ke Paparan

Kami memerlukan medan teks untuk menunjukkan maklumat kami (artis, nama lagu, peratusan memuatkan dan panjang lagu). Kami akan membuat medan teks secara manual ke pentas.

Menarik teks pertama pada lapisan teks seperti yang ditunjukkan dalam imej di bawah. Tukar semua tiga medan teks ke satu movieclip tunggal yang dipanggil "playerTexts". Buat satu lagi medan teks dan sebut sebagai "preloader". Anda tidak perlu menukar ini ke movieclip.

Langkah 7: Lengkapkan Paparan

Apa yang perlu kita lakukan ialah memasukkan medan loader-text baru dan playerTexts-movieclip dalam satu movieclip supaya kita dapat mengawal teks seperti dan bila kita suka.

Pilih loader-textfield dan playerTexts-movieclip dan tekan F8. Beri nama dan nama contoh "paparan". Kini kami telah menyelesaikan hierarki paparan kami, sepatutnya kelihatan seperti ini:

Untuk menulis contoh data ke songInfo-textfield kita perlu menulis baris kod berikut:

Jadi sekarang kita mempunyai setiap elemen grafik siap yang kita perlukan untuk Pemain MP3. Seterusnya kami akan melompat jauh ke dalam kod, jadi menyelam dengan saya!

Langkah 8: Buat Fail Kelas Dokumen

Untuk mendapatkan kod yang berfungsi, kita perlu membuat kelas dokumen. Kod kelas dokumen dilaksanakan terlebih dahulu apabila .swf fail dimainkan. Anda tidak perlu menulis kod anda pada garis masa lagi dan kelas anda lebih mudah untuk diimport ke file ff yang lain pada masa akan datang jika diperlukan.

Pergi ke Fail> Baru. Pilih "Fail Actionscript" dari tetingkap yang terbuka dan klik OK. Simpan fail ke folder yang sama dengan fail .fla anda dan namakannya "SimpleMP3Player.as".

Sekarang tentukan fail .as baru anda sebagai kelas dokumen. Klik panggung dan pergi ke panel Properties. Di sana anda akan menemui medan "Kelas" di mana anda perlu memasukkan nama kelas yang telah anda buat. Masukkan "SimpleMP3Player" dan klik butang pensil kecil. Jika anda mengeja nama kelas dengan betul, fail "SimpleMP3Player.as" harus menjadi aktif. Jika tidak Flash akan membuang ralat.

Langkah 9: Kod ini

Kod membawa segala-galanya kepada kehidupan. Inilah tindakan ActionScript yang lengkap, saya akan menerangkannya menghalang oleh blok. Semak juga kod sumber dari pakej sumber, saya telah mengulas dari awal hingga akhir.

Langkah 10: Kod Pakej Asas

Titik permulaan kami kelihatan seperti contoh di atas. Ingat bahawa nama kelas harus sama dengan nama fail kelas dokumen anda. Segala-galanya dalam fungsi awam SimpleMP3Player dilaksanakan selepas Flash telah memuatkan kelas kami.

Langkah 11: Import Kelas yang Diperlukan

Mari kita import semua kelas yang perlu dimainkan oleh pemain MP3 kami.

Semuanya haruslah agak lurus ke hadapan. Dalam barisan terakhir kami mengimport Caurina Tweener. Pastikan anda mempunyai direktori caurina di lokasi yang sama dengan fail .fla anda.

Langkah 12: Nyatakan Pembolehubah

Semua pembolehubah adalah peribadi. Hanya kelas SimpleMP3Player yang boleh menggunakannya.

Objek bunyi mp3File menyimpan suara Tarzan kami.mp3. mp3FilePosition adalah objek SoundChannel. Kami memerlukannya untuk memberitahu kami kedudukan mp3File semasa dalam milisaat. Dengan objek ini kita juga boleh menghentikan fail mp3.

Kedai objek id3Data mp3 bunyi maklumat id3. Sebagai contoh, nama lagu dan nama artis. id3InfoAvailable menceritakan preloader kami bahawa info id3 tersedia supaya kod boleh mula memainkan mp3 File.

updateTime adalah objek pemasa kami yang mengemas kini paparan masa-textfield. Anda boleh mendapatkan maklumat lanjut mengenai kelas Pemasa di sini . Saya akan melalui ini nanti.

playSound hanyalah pemboleh ubah boolean yang memberitahu kami jika mp3File sedang bermain. soundPosition menyimpan nilai angka apabila pengguna menolak butang Jeda supaya kami dapat terus memainkan muzik dari posisi dijeda apabila pengguna mengklik butang Putar. songReachedEnd menunjukkan bahawa lagu telah selesai dimainkan.

Finalyl, terakhir tetapi tidak kurang, pembolehubah array kami yang memegang butang koordinat y movieclip. Sebagai contoh:

Tombol jeda kemudian ditunjukkan pada skrin. Jika anda menggunakan 0 di dalam [kurungan], anda akan melihat butang Putar.

Langkah 13: Masking dengan Kod

Sudah tiba masanya untuk melihat kod kami terlebih dahulu apabila ia dimuatkan. Mari kita mengendalikan fungsi pertama dalam kod kami; fungsi SimpleMP3Player.

fungsi SimpleMP3Player adalah fungsi pembina supaya ia mesti dipublikasikan. Menamakannya secara peribadi menyebabkan kesilapan. Keadaan lalai fungsi adalah umum supaya anda tidak perlu menulis "umum" sebelum fungsi.

Masking dengan kod ini sangat mudah dan lurus ke hadapan. Pada baris 3 anda melihat kod untuk penutupan. Kami hanya menetapkan movieclip "displayMask" untuk topeng "paparan" filem topeng. Itu sahaja.

Paparan harta kedua.playerTexts.x melancarkan movieclip "playerTexts" sepanjang paksi mendatar. Kami hanya memindahkannya untuk menyelaras -73. Mask menyembunyikan "playerTexts" movieclip.

Langkah 14: Kaedah, Mod Button dan BS

"butang" adalah movieclip dan secara lalai apabila tetikus melayang di atasnya, kursor tetap sebagai anak panah asas. Menetapkan butang "butangMode" untuk benar menghidupkan kursor ke tangan apabila tetikus melayang. Pada mulanya kita mahu kursor itu sebagai anak panah supaya butangMode ditetapkan kepada palsu. Pada baris yang sama, kami menetapkan harta "didayakan" kepada palsu. Ini bermakna bahawa "butang" movieclip tidak dapat diklik. Dalam barisan 2, kami menetapkan kedudukan "movieclip" butang butang ke butang kurang upaya.

Baris pertama boleh mengelirukan, tetapi jika saya menulisnya seperti ini ...

... anda mungkin dapat melihatnya lebih jelas. Saya menjimatkan ruang dengan menulisnya dalam satu baris.

Apa yang kita buat sekarang ialah memanggil kaedah "loadMP3" kami.

Langkah 15: Kaedah loadMP3

Kaedah ini adalah kaedah utama kami. Apa yang dilakukan ialah memuat fail mp3, mengisytiharkan EventListeners yang diperlukan dan luncurkan preloader untuk dipaparkan.

Baris ini menghasilkan objek Bunyi yang baru. Kami boleh mengakses semua kaedah dan sifat kelas Bunyi melalui mp3 File.

Baris pertama mengisytiharkan acara PROGRESS dan setiap kali acara dipanggil ia memanggil kaedah mp3FileLoading. Pendengar ini mempunyai beberapa sifat yang kami perlukan.Pertama adalah bytesTotal yang memegang seluruh saiz fail mp3 dalam bait Kedua adalah bytesLoaded yang memegang bait yang dimuat semasa. Dengan kedua-dua sifat ini kita dapat mengira peratusan yang dimuat fail dan memaparkannya untuk pengguna.

Baris kedua menyeru apabila keseluruhan fail mp3 dimuatkan. Ia memanggil kaedah mp3FileLoaded.

Baris ketiga adalah untuk pengendalian ralat. Sebagai contoh, jika dan fail mp3 tidak dijumpai, acara ini menyeru. Ia memanggil kaedah errorLoadingSound.

Dalam baris 5, acara tersebut akan digunakan apabila id3-data tersedia. Ia memanggil kaedah getID3Data.

beban" kaedah memuat Tarzan mp3-fail kami. Dalam kurungan dalaman kami mengisytiharkan URLPemintaan baru dan di dalamnya adalah laluan ke fail mp3 kami. Laluan kami adalah relatif dan tarzan.mp3 mesti berada di lokasi yang sama dengan fail .fla dan .as. Garis ini adalah sama seperti di bawah. Gunakan mana-mana yang anda suka.

Ini kali pertama kami menggunakan Caurina, jadi saya akan segera menunjukkan bagaimana ia berfungsi.

Ini adalah kod asas. Sasaran adalah di mana anda menulis nama objek sasaran yang anda ingin tween. Dalam sifat anda, anda menentukan apa yang anda mahu lakukan dengan sasaran. Anda boleh mengubah suai, sebagai contoh, koordinat x dan y, ketelusan, skala atau putaran.

Sasaran kami ialah medan teks "preloader" di dalam "paparan" movieclip. Harta "x" menggerakkannya dan harta "masa" menunjukkan masa yang diperlukan oleh tween. Masa diukur dalam beberapa saat. Jika anda mahu milisaat menggunakan notasi ".5".

Langkah 16: Kaedah Acara mp3FileLoading

Seperti yang saya nyatakan sebelum ini, kaedah "mp3FileLoading" menunjukkan nilai peratusan berapa banyak fail mp3 telah dimuatkan. Ia juga memulakan lagu apabila peratusan meningkat lebih tinggi daripada 50%.

currentPercent adalah untuk mengira nilai peratusan. Kami mengulanginya dengan kaedah "Math.round". Baris 4 menulis nilai peratusan ke medan teks kami supaya pengguna dapat melihat apa yang berlaku dengan pemuatan.

Di dalam pernyataan "jika" kita periksa jika peratusan melebihi 50 dan pembolehubah "id3InfoAvailable" adalah benar. Sekiranya kedua-duanya kembali benar, pernyataan "if" akan melaksanakan semua di dalam kurungan.

Apabila pernyataan jika benar, kami tween "text" preloader teks jauh. Apabila tween selesai, Caurina memanggil kaedah "playMP3" dan melepasi dua sifat untuknya. Kami melihat kaedah "playMP3" dalam langkah seterusnya.

Acara PROGRESS tidak lagi diperlukan, jadi kami keluarkannya pada baris 9.

Langkah 17: Kaedah Acara mp3FileLoaded

Kaedah ini digunakan apabila seluruh lagu dimuatkan. Mula-mula kita keluarkan Peristiwa Acara yang tidak perlu. Dalam baris 5 kita tween "teks" di sebelah kanan teks.

Langkah 18: Kaedah Peristiwa KesalahanLoadingSound

Pengendalian ralat ini benar-benar asas. Ia hanya mengesan kesilapan jika ralat berlaku.

Langkah 19: Dapatkan Peristiwa Acara GetID3

Kami menetapkan "id3InfoAvailable" untuk benar dalam baris 3. Kaedah "mp3FileLoading" menyemak pembolehubah ini setiap kali dan memulakan bunyi hanya jika ia benar. Dengan cara ini, kami memastikan info id3 tersedia supaya pengguna melihat maklumat sebenar pada paparan.

Dalam barisan 4 kami memberikan metadata mp3File id3 kepada objek ID3Info bernama id3Data yang kami buat dalam Langkah 12.

Langkah 20: kaedah playMP3

Kaedah ini adalah kaedah yang lebih penting dalam pemain kami. Mari lihat pada blok pertama.

Kaedah "playMP3" memerlukan dua sifat. "useSp" menunjukkan "menggunakan kedudukan bunyi" dan "sp" adalah "kedudukan bunyi".

Dalam baris 3 kita menguji jika "useSp" adalah benar. Jika ya, kod itu memainkan lagu kita bermula dari titik yang dikehendaki. Titik ini diluluskan dalam "sp" harta. Jika palsu, kita mula memainkan lagu dari awal. Semua ini berkaitan dengan butang main-pause.

Baris 1 mengesetkan permainan yang dimainkan. Sekarang kita boleh menyemak sama ada bunyi sedang bermain dan melakukan apa yang perlu.

EventListener baru dalam talian 2 kebakaran setiap kali lagu selesai bermain. Kaedah "songFinished" dilaksanakan. Perhatikan bahawa kami menambah EventListener ke objek mp3FilePosition.

EventListener baru kedua dalam baris 3 menambah acara "PROGRESS" yang sama kepada mp3File seperti pada permulaan kod. Pendengar ini hanya membakar kaedah yang berbeza. Kaedah "updateBuffer" adalah untuk mengemas kini medan "buffer".

Baris pertama yang anda akan temui biasa. Fail mp3 kami sedang dimainkan supaya kami boleh mengemas kini butang untuk menunjukkan keadaan yang sesuai, membolehkan butang "butangMode" dan "didayakan".

Kami menggunakan "Pemasa" untuk menunjukkan kedudukan bunyi semasa dalam saat. Dengan "Pemasa" anda boleh melaksanakan kaedah dalam urutan masa.

Di sini, baris pertama mencipta objek "Timer" baru dengan selang 100 milisaat. Anda mungkin tertanya-tanya mengapa kami ingin mengemas kini masa kini setiap 100 millisec .. 1 saat terlalu lambat untuk pemain kami dan bahkan 0.5 saat terlalu perlahan. Saya mahu ia mengemas kini masa dengan lancar. Lebih banyak pada Kelas pemasa .

Kami juga memerlukan EventListener untuk melakukan sesuatu setiap 100 milisaat. Acara "TIMER" melaksanakan kaedah "getMP3Time" yang akan saya lalui dalam langkah seterusnya.

Talian 4 memulakan "Pemasa" kami.

Dalam blok terakhir kami menunjukkan metadata id3 kepada pengguna. Nama artis dan nama lagu ditolak kepada pemboleh ubah baru di baris pertama. Ini kerana saya ingin memanfaatkan keseluruhan rentetan di baris seterusnya. Kami menggunakan fon bitmap, jadi saya fikir ia hanya kelihatan lebih baik dalam huruf besar.

Dalam baris 3 kami memastikan bahawa medan "songInfo" cukup panjang untuk menunjukkan rentetan "si". Baris 4 adalah untuk mengelakkan pembungkusan kata dalam medan teks dan dalam baris 5 kami hanya menyerahkan rentetan "si" kepada anda "songInfo" textfield.

Baris terakhir memaparkan movieclip "playerTexts" untuk "paparan".

Langkah 21: kemas kiniBufferField Method

Sukar untuk menunjukkan kepada pengguna berapa data data fail dimuatkan. Kami mempunyai preloader kami, tetapi saya fikir kami perlu juga bidang penampan kerana lagu kami mula dimainkan selepas 50% dimuatkan. Kaedah ini berterusan di mana kaedah "mp3FileLoading" ditinggalkan.

Tiada apa yang istimewa di sini, hanya fungsi peribadi dengan dua baris tindakan. Peratusan asas mengira dan menyerahkannya ke medan teks "penampan".

Langkah 22: Dapatkan Kaedah Acara getMP3Time

Saya menunjukkan kaedah ini sekaligus kerana ini hanya matematik dan pengekodan yang benar-benar asas.

Dalam 4 baris pertama kita mengira masa yang kita perlukan. Ini agak rumit kerana semua nilai yang kembali berada dalam milisaat. Kami juga pusingan minit dan detik ke bawah.

Baris 8 dan 9 adalah untuk menambah sifar tambahan sebelum saat jika nilai-nilai itu berada di bawah 10 (ini hanya tweaker dan tidak diperlukan). Bagi saya, textfield "masa" kemudian kelihatan bersih sedikit.

Baris terakhir menunjukkan keseluruhan masa kepada pengguna.

Langkah 23: Kaedah Acara songFinished

Mari kita teruskan dengan kod yang sangat asas.

Kaedah event "songFinished" dilancarkan setiap kali lagu selesai dimainkan.

Dalam dua baris pertama, kami menghapuskan EventListeners yang tidak perlu. Seterusnya kita tunjukkan butang main dimatikan kepada pengguna dan hentikan fail mp3. Menghentikan tidak diperlukan, tetapi kami melakukannya sekiranya berlaku.

"playSound" ditetapkan kepada palsu dan "songReachedEnd" menjadi benar. Dalam langkah ext yang anda lihat mengapa kami memerlukan pembolehubah "songReachedEnd".

"soundPosition" boleh diakses dari mana-mana di dalam kelas kami supaya ia perlu ditetapkan pada 0 pada ketika ini. Kini kami memastikan bahawa jika pengguna mahu memainkan lagu lagi, ia bermula dari awal.

Baris terakhir menetapkan medan teks "kali" untuk menunjukkan "PLAY AGAIN?" teks. Pengguna kami adalah raja-raja, sebab itulah kami perlu memberi semua maklumat yang mungkin kepada mereka.

Langkah 24: Kaedah Peristiwa tetikus dan tetikusOutBs tetikus

Di sini kaedah "mouseOverBs" dipecat setiap kali tetikus melepasi "bs" movieclip.

Pertama, kaedah acara ini semak jika "playSound" adalah benar dan jika movieclip "butang" berada dalam keadaan "berhenti sebentar". Jika tidak, ia menunjukkan keadaan "mainkan". Barisan terakhir kami memeriksa jika bunyi telah selesai dimainkan dan menunggu jika pengguna mahu memainkan lagu itu lagi.

Kaedah lain adalah apabila tetikus meninggalkan di atas "bs" movieclip.

Ini serupa dengan kaedah sebelum ini.

Langkah 25: Kaedah Peristiwa mouseClickBs

Kaedah acara ini adalah pusat fungsi klik movieclip kami "bs".

Apabila anda mengklik butang ia terlebih dahulu memeriksa jika bunyi sedang dimainkan. Sekiranya demikian, ia akan melancarkan movieclip "butang", menyimpan kedudukan bunyi semasa (di mana kita boleh terus bermain dari jika kita mahu), berhenti "Pemasa" kami, berhenti lagu kami, menetapkan "playSound" ke palsu dan kemas kini "times" textfield teks ke "PAUSE". Blok kod ini ialah butang jeda kami.

our song is not playing and starts the song from stored "sound Position".Blok kod ini memulakan lagu kami dari keadaan jeda. Ia menyemak lagu kita tidak bermain dan memulakan lagu dari "soundposition" disimpan.

The last block checks that if the song has finished playing and the user wants to play song again, it starts the song from the beginning.

Kesimpulannya

SimpleMP3Player kini selesai ... (sejauh yang saya bimbangkan). Kini giliran anda untuk menambah beberapa ciri untuknya. Mungkin anda ingin menambah butang berhenti atau mungkin memberikan ciri senarai main dengan XML. Buat "songInfo" textfield digulir sehingga data yang lebih lama menunjukkan sepenuhnya. Kemungkinan tidak berkesudahan!

Jangan lupa untuk memeriksa kod sumber dalam pakej sumber. Saya telah mengulas kod dari awal hingga akhir supaya anda boleh mempelajari perkara ini dengan cara itu juga. Terima kasih untuk membaca!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.