MEMBUAT APPS MEDIA PLAYER DAN VIDEO PLAYER PADA ANDROID STUDIO

Secara umum audio merupakan salah satu elemen penting yang ikut berperan dalam membangun sebuah sistem komunikasi dalam bentuk suara, yaitu suatu sinyal elektrik yang akan membawa unsur bunyi didalamnya.

Sedangkan Player adalah bahasa inggris yang artinya pemain (pemutar). jadi bisa diartikan bahwa Audio Player adalah suatu aplikasi untuk memutar file musik.

Video Player adalah suatu aplikasi yang digunakan untuk memutar file berupa video dan biasaynya file ini berformat MP4 walaupun banyak format video lainnya.

Berikut pelaksaan praktikum : 

A. Membuat App Music Player menggunakan API Media Player 
  • Buka Aplikasi Android Studio. Setelah muncul seperti ini, klik Star a new Android Studio project.
  • Pilih template yang akan digunakan sesuai dengan kebutuhan, dan next.
  • Akan muncul tampilan seperti dibawah ini. Kita hanya perlu memberi nama project pada “Name” dan pilih lokasi penyimpanan project-nya akan disimpan difolder mana pada bagian “Save location”, selebihnya cukup biarkan saja. Kali ini kita nama kan "MusicPlayer". Jika sudah, klik “Finish”.
  • Siapkan file music dengan format .mp3 dan logo headphone dengan jenis format .png, lalu klik kanan dan copy : 
  • Buat folder dengan nama raw, lalu pada folder raw yg telah dibuat klik kanan, pilih new dan klik directory
  • Lalu klik folder res - raw - klik kanan - Show in Explorer. Akan muncul tampilan windows explorer dan paste kan file music.mp3 tadi seperti dibawah ini : 

  • Copy kan file logo headphone.png tadi kedalam folder res-drawable seperti dibawah ini :

  • Ubah script pada activity_main.xml seperti dibawah ini :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:background="#0b00a3"
    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="Just as Usual"
        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/headphone"/>
    
<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="backforward"
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:baselineAligned="false"
            android:onClick="play"
android:src="@android:drawable/ic_media_play"/>
        
     <ImageButton
            android:id="@+id/btn_forward"
          android:layout_width="wrap_content"
        android:layout_height="wrap_content"
            android:layout_marginLeft="14dp"
            android:onClick="forward"
 android:src="@android:drawable/ic_media_ff"/>
    
        </LinearLayout>
</LinearLayout>

  • Ubahlah script MainAcitivicy seperti dibawah ini : 
package dewiratnawati246.blogspot.com.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 durationHadler = 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("Just as Usual.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))));
    durationHadler.postDelayed(this, 1000);
         }
    };
    public void play(View view) {
        mediaPlayer.start();
        timeStart = mediaPlayer.getCurrentPosition();
        seekBar.setProgress((int) timeStart);
 durationHadler.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);
    }
}
  • Setelah selesai dengan script diatas, klik run untuk menjalankan script'nya, dan akan muncul tampilan seperti dibawah ini : 


B. Membuat App Vidio Player menggunakan API Media Player 
  • Buka Aplikasi Android Studio. Setelah muncul seperti ini, klik Star a new Android Studio project.
  • Pilih template yang akan digunakan sesuai dengan kebutuhan, dan next.
  • Akan muncul tampilan seperti dibawah ini. Kita hanya perlu memberi nama project pada “Name” dan pilih lokasi penyimpanan project-nya akan disimpan difolder mana pada bagian “Save location”, selebihnya cukup biarkan saja. Kali ini kita nama kan "VideoPlayer". Jika sudah, klik “Finish”.
  • Buat folder dengan nama raw, lalu pada folder raw yg telah dibuat klik kanan, pilih new dan klik directory
  • Lalu copy-kan file video yg akan digunakan dengan format file .mp4. Klik folder res - raw - klik kanan - Show in Explorer. Akan muncul tampilan windows explorer dan paste-kan file videonya seperti file music diatas.
  • Ubahlah script Activity_main.xml seperti dibawah ini : 
      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout 

xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:padding="20dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:background="#FA8072"
    android:orientation="vertical">

    <TextView
        android:id="@+id/songName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textStyle="bold"
        android:layout_margin="20dp"
        android:textColor="#ffffff"
        android:text="Judul vidio"/>

    <VideoView
        android:id="@+id/vidioplay"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

    <TextView
        android:id="@+id/songDuration"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="#ffffff"
        android:text="Durasi vidio"/>

    <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"
        android:orientation="horizontal">

    <ImageButton
       android:id="@+id/btn_back"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="14dp"
       android:onClick="backforward" 
 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_forward"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="14dp"
       android:onClick="forward" 
 android:src="@android:drawable/ic_media_ff"/>
      
</LinearLayout>
</LinearLayout>
  • Ubah script pada MainActivity.java seperti dibawah ini : 
package dewiratnawati246.blogspot.com.videoplayer;

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 android.widget.VideoView;
import java.util.concurrent.TimeUnit;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private MediaPlayer mediaPlayer;
    private TextView songName, songDuration;
    private VideoView videoView;
    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.lawschool);
        MediaMetadataRetriever meta = new MediaMetadataRetriever();
        videoView = (VideoView) findViewById(R.id.vidioplay);
        String path = "android.resource://" + getPackageName() + "/" + R.raw.lawschool;
    videoView.setVideoURI(Uri.parse(path));

        seekBar = (SeekBar) findViewById(R.id.seekBar);
        songName.setText("Vidio.mp4");
        seekBar.setOnSeekBarChangeListener(new yourListener() );
        seekBar.setClickable(false);
}
     
private class yourListener implements SeekBar.OnSeekBarChangeListener {
         public void onProgressChanged (SeekBar seekBar, int progress, boolean fromUser){
             if (swtch){
                 videoView.seekTo(progress);
             }
         }

         public void onStartTrackingTouch(SeekBar seekBar) {
             swtch = true;
         }
         public void onStopTrackingTouch(SeekBar seekBar) {
             swtch = false;
         }
     }
     private Runnable updateSeekBarTime = new Runnable() {
        public void run(){
            timeStart = videoView.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){
        videoView.start();
        finalTime = videoView.getDuration();
        seekBar.setMax((int) videoView.getDuration());
        timeStart = videoView.getCurrentPosition();
        seekBar.setProgress((int) timeStart);
        durationHandler.postDelayed(updateSeekBarTime, 1000);
}
    public void pause(View view){
        videoView.pause();
    }
    public void forward(View view){
        timeStart = timeStart + forwardTime;
        videoView.seekTo((int) timeStart);
    }
    public void backforward(View view){
        timeStart = timeStart - backwardTime;
        videoView.seekTo((int) timeStart);

    }
}
  • Setelah selesai dengan script diatas, klik run untuk menjalankan script'nya, dan akan muncul tampilan seperti dibawah ini : 



Sekian pelaksanaan praktikum membuat Music Player dan Video Player pada Android Studio dan terima kasih sudah mampir diblog ini🙂 

    Komentar

    Postingan populer dari blog ini

    PENGENALAN LAYOUTING (LinearLayout, RelativeLayout, TableLayout, AbsoluteLayout) PADA ANDROID STUDIO

    PENGENALAN SQLITE PADA ANDROID STUDIO

    CRUD Database MySQL dengan PHP Pada Apk Andoroid