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.
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”.
- 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);
}
}
Sekian pelaksanaan praktikum membuat Music Player dan Video Player pada Android Studio dan terima kasih sudah mampir diblog ini🙂
Komentar
Posting Komentar