Ayo Membuat Mp3 Participant Sederhana Di Android

Ini cuma aplikasi sederhana cara memainkan MP3 di SDCARD, dengan menampilkan daftar lagu MP3 pada sebuah ListView.

Buat proyek baru dengan nama MP3Player di Eclipse. Activity utama kita bernama Mp3PlayerActivity.
Layout
Pertama-tama definisikan layout untuk menampilkan daftar lagu. Pakai saja ListView untuk menyederhanakan program. Nanti kalau sudah mahir boleh pakai list yang lebih cantik tampilannya. Jadi bikin dulu layout baru namanya daftarlagu.xml.

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout

xmlns:android=”http://schemas.android.com/apk/res/android”

android:orientation=”vertical”

android:layout_width=”match_parent”

android:layout_height=”match_parent”>

<ListView android:id=”@id/android:list”

android:layout_width=”fill_parent”

android:layout_height=”fill_parent”

android:layout_weight=”1″

android:drawSelectorOnTop=”false”

/>

<TextView android:id=”@id/android:empty”

android:layout_width=”fill_parent”

android:layout_height=”fill_parent”

android:text=”tidak ada lagu SD Card”

/>

</LinearLayout>

ListView yang cukup simple, yang akan menampilkan text “tidak ada lagi di SD card” ketika tidak ada items ditemukan di ListView.

Lalu bikin lagi file XML untuk menampilkan setiap file MP3 yang akan dimunculkan di ListView, kasi nama misalnya viewlagu.xml.

<?xml version=”1.0″ encoding=”utf-8″?>

<?xml version=”1.0″ encoding=”utf-8″?>

<TextView android:id=”@+id/text1″ xmlns:android=”http://schemas.android.com/apk/res/android”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”/>
Activity
Kemudian buka file MP3PlayerActivity.java yang sudah otomatis dibuat pada saat create project sebelumnya. Edit file tersebut sehingga lengkap seperti sebagai berikut:

package com.vitraining;

import java.io.File;

import java.io.FilenameFilter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import android.app.ListActivity;

import android.media.MediaPlayer;

import android.media.MediaPlayer.OnCompletionListener;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

public class Mp3PlayerActivity extends ListActivity {

private static final String MEDIA_PATH = new String(“/sdcard/”);

private List<String> songs = new ArrayList<String>();

private MediaPlayer mp = new MediaPlayer();

private int currentPosition = 0;

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.daftarlagu);

updateDaftarLagu();

}

public void updateDaftarLagu() {

File home = new File(MEDIA_PATH);

if (home.listFiles(new Mp3Filter()).length > 0) {

for (File file : home.listFiles(new Mp3Filter())) {

songs.add(file.getName());

}

ArrayAdapter<String> songList = new ArrayAdapter<String>(this, R.layout.viewlagu, songs);

setListAdapter(songList);

}

}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

currentPosition = position;

playSong(MEDIA_PATH + songs.get(position));

}

private void playSong(String songPath) {

try {

mp.reset();

mp.setDataSource(songPath);

mp.prepare();

mp.start();

// Setup listener so next song starts automatically

mp.setOnCompletionListener(new OnCompletionListener() {

public void onCompletion(MediaPlayer arg0) {

nextSong();

}

});

} catch (IOException e) {

Log.v(getString(R.string.app_name), e.getMessage());

}

}

private void nextSong() {

if (++currentPosition >= songs.size()) {

// Last song, just reset currentPosition

currentPosition = 0;

} else {

// Play next song

playSong(MEDIA_PATH + songs.get(currentPosition));

}

}

}

class Mp3Filter implements FilenameFilter {

public boolean accept(File dir, String name) {

return (name.endsWith(“.mp3″));

}

}

Import package-package yang diperlukan. Di Eclipse, arahkan ke class yang dibilang error, lalu pilih import <nama package>.

Lakukan proses build (Project à Build Project) agar layout dikenali disini.

Function onCreate() gunanya untuk menampilkan view daftarlagu yang sudah kita buat sebelumnya. Kemudian memanggil function updateDaftarLagu().

Function updateDaftarLagu()  gunanya untuk membaca semua file yang ada di SD Card sesuai filter yang telah didefinisikan sebelumnya (yaitu class MP3Filter). Setiap file lagu yang ditemukan, nama filenya disimpan di variable songs. Kemudian dibentuk ListAdapter yang datanya

Ayo Membuat Mp3 Participant Sederhana Di Android

Comments

Comments are closed.

Go back to top