Cara Membuat Aplikasi MediaPlayer (Music Player) Android Studio

 APPS MEDIA PLAYER PADA ANDROID STUDIO

MediaPlayer Android Studio

Ringkasan Tentang MediaPlayer

    Framework multimedia Android menyertakan dukungan untuk memutar berbagai jenis media umum agar Anda dapat mengintegrasikan audio, video, dan gambar dengan mudah ke dalam aplikasi Anda. Anda dapat memutar audio atau video dari file media yang disimpan dalam resource aplikasi (resource mentah), dari file mandiri dalam sistem file, atau dari streaming data yang masuk melalui koneksi jaringan, semuanya menggunakan MediaPlayer API.

Dasar-dasar

Class berikut digunakan untuk memutar suara dan video dalam framework Android:

  • MediaPlayer Class ini adalah API utama untuk memutar suara dan video.
  • AudioManager Class ini mengelola sumber audio dan output audio di perangkat.

Menggunakan MediaPlayer

    Salah satu komponen terpenting framework media adalah class MediaPlayer. Objek class ini dapat mengambil, mendekode, serta memutar audio dan video dengan sedikit penyiapan. Class ini mendukung beberapa sumber media yang berbeda, seperti:

  1. Resource lokal
  2. URI internal, seperti yang mungkin Anda peroleh dari Content Resolver
  3. URL eksternal (streaming)

Tutorial Membuatnya

  1. Pertama kita jalankan aplikasi IDE Android Studio, caranya :
    • Pilih  Start Android Studio
      Pilih  Start new Android Studio Project
      Pilih Empty Activity → Next
      Configure your Project :
    Name: MusiPlayer 
    Package Name: blog.gasdong.com 
    Save Location: D\:2021\Semester6\TI-1\14518511 Ananda Ariwibawa\MusicPlayer 
    Language: Java 
    Minimum SDK: API14
  2. Siapkan sebuah file suara/musik dengan format file .mp3  dan file gambar dengan jenis format file .png.
  3. Buat sebuah direktori/folder dengan nama raw didalam folder res dengan cara klik kanan pada folder res lalu pilih New → Directory dan berinama folder dengan raw (/res/raw).

    raw folder MediaPlayer Android Studio



  4. Copy file music (.mp3) anda kedalam folder ../raw dengan cara klik kanan folder raw lalu pilih Show Explorer, kemudian paste (tempelkan) didalam foldernya.

    Show Explorer Android Studio MediaPlayer



  5. Copy file gambar (.png) anda kedalam folder ../res/drawable dengan cara klik kanan folder (/raw/drawable) lalu pilih Show Explorer, kemudian paste (tempelkan) didalam foldernya.
  6. Selanjutnya ketikan kode program / script activity_main.xml dibawah ini:

     <?xml version="1.0" encoding="utf-8"?>  
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
       android:id="@+id/container"  
       android:layout_width="match_parent"  
       android:layout_height="match_parent"  
       android:layout_gravity="center"  
       android:background="#CDDC39"  
       android:orientation="vertical"  
       android:padding="20dp">  
       <TextView  
         android:id="@+id/songName"  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:layout_gravity="center"  
         android:text="Judul Lagu"  
         android:textColor="#ffffff"/>  
       <ImageView  
         android:id="@+id/mp3icon"  
         android:layout_width="match_parent"  
         android:layout_height="200dp"  
         android:layout_margin="30dp"  
         android:background="#ffffff"  
         android:padding="30dp"  
         android:src="@drawable/music"/>  
       <TextView  
         android:id="@+id/songDuration"  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:layout_gravity="center"  
         android:text="Durasi Lagu"  
         android:textColor="#ffffff" />  
       <SeekBar  
         android:id="@+id/seekBar"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content" />  
       <LinearLayout  
         android:layout_width="match_parent"  
         android:layout_height="match_parent"  
         android:layout_marginTop="30dp"  
         android:gravity="center_horizontal">  
         <ImageButton  
           android:id="@+id/btn_back"  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:layout_marginLeft="14dp"  
           android:onClick="backtoforward"  
           android:src="@android:drawable/ic_media_rew"/>  
         <ImageButton  
           android:id="@+id/btn_pause"  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:layout_marginLeft="14dp"  
           android:onClick="pause"  
           android:src="@android:drawable/ic_media_pause"/>  
         <ImageButton  
           android:id="@+id/btn_Play"  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:layout_marginLeft="14dp"  
           android:onClick="play"  
           android:src="@android:drawable/ic_media_play"/>  
         <ImageButton  
           android:id="@+id/btn_forword"  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:layout_marginLeft="14dp"  
           android:onClick="foward"  
           android:src="@android:drawable/ic_media_ff"/>  
       </LinearLayout>  
     </LinearLayout>  
    

    maka akan terlihat desain tampilan seperti ini:

    Tampilan MediaPlayer Android Studio


  7. Setelah itu Buka dan ubah script MainActivity.java menjadi seperti di bawah ini :

     package www.ariwibawa.my.id.musicplayer;  
     import android.content.res.AssetFileDescriptor;  
     import android.media.MediaMetadataRetriever;  
     import android.net.Uri;  
     import android.os.Bundle;  
     import android.media.MediaPlayer;  
     import android.provider.MediaStore;  
     import android.util.Log;  
     import android.view.View;  
     import android.widget.SeekBar;  
     import android.widget.TextView;  
     import android.os.Handler;  
     import java.util.concurrent.TimeUnit;  
     import androidx.appcompat.app.AppCompatActivity;  
     public class MainActivity extends AppCompatActivity {  
       private MediaPlayer mediaPlayer;  
       private TextView songName, songDuration;  
       private SeekBar seekBar;  
       private double timeStart = 0, finalTime = 0;  
       private int forwardTime = 20000, backwardTime = 20000;  
       private Handler durationHandler = new Handler();  
       private boolean swtch = false;  
       @Override  
       protected void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         setContentView(R.layout.activity_main);  
         songName = (TextView) findViewById(R.id.songName);  
         songDuration = (TextView) findViewById(R.id.songDuration);  
         mediaPlayer = MediaPlayer.create(this, R.raw.music);  
         MediaMetadataRetriever meta = new MediaMetadataRetriever();  
         final AssetFileDescriptor afd=getResources().openRawResourceFd(R.raw.music);  
         meta.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());  
         String music_duration = meta.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);  
         finalTime = Long.parseLong(music_duration);  
         Log.v("musicDuration", "Duration : "+music_duration);  
         seekBar = (SeekBar) findViewById(R.id.seekBar);  
         songName.setText("Nokia Ring Tone.mp3");  
         seekBar.setMax((int) finalTime);  
         seekBar.setOnSeekBarChangeListener(new yourListener() );  
         seekBar.setClickable(false);  
       }  
       private class yourListener implements SeekBar.OnSeekBarChangeListener {  
         public void onProgressChanged(SeekBar seekBar, int progress,  
                        boolean fromUser){  
           if(swtch){  
             mediaPlayer.seekTo(progress);  
           }  
         }  
         public void onStartTrackingTouch(SeekBar seekBar){  
           swtch = true;  
         }  
         public void onStopTrackingTouch(SeekBar seekBar){  
           swtch = false;  
         }  
       }  
       private Runnable updateSeekBarTime = new Runnable() {  
         @Override  
         public void run() {  
           timeStart = mediaPlayer.getCurrentPosition();  
           seekBar.setProgress((int) timeStart);  
           double timeRemaining = finalTime - timeStart;  
           songDuration.setText(String.format("%d min, %d sec",  
               TimeUnit.MILLISECONDS.toMinutes((long) timeRemaining),  
               TimeUnit.MILLISECONDS.toSeconds((long) timeRemaining) -  
               TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) timeRemaining))));  
           durationHandler.postDelayed(this, 1000);  
         }  
       };  
       public void play(View view){  
         mediaPlayer.start();  
         timeStart = mediaPlayer.getCurrentPosition();  
         seekBar.setProgress((int) timeStart);  
         durationHandler.postDelayed(updateSeekBarTime, 100);  
       }  
       public void pause(View view){  
         mediaPlayer.pause();  
       }  
       public void forward(View view){  
         timeStart = timeStart + forwardTime;  
         mediaPlayer.seekTo((int) timeStart);  
       }  
       public void backforward(View view){  
         timeStart = timeStart + backwardTime;  
         mediaPlayer.seekTo((int) timeStart);  
       }  
     }  
    

  8. Lalu coba jalankan menggunakan emulator (RUN) yang tersedia di Android Studio Anda, maka akan tampil seperti gambar dibawah ini :

    Hasil MediaPlayer Music-Android Studio

Simple Person - Sunset Admirer - Coffee Addict - Sejengkal Tuhan - Diatas Tulisanku