0% found this document useful (0 votes)
8 views7 pages

Task 10

Uploaded by

snehatumaskar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views7 pages

Task 10

Uploaded by

snehatumaskar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

MusicActivity.

java
package com.example.musicplayer;
import android.annotation.SuppressLint;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
public class MusicActivity extends AppCompatActivity {
MediaPlayer mediaPlayer;
private int currentIndex = 0;
ImageButton
ivsongprevious,ivsongback,ivsongplay,ivsongforward,ivsongnext;
ImageView ivsongimage;
private static int stime,btime=5000,ftime=5000;
TextView tvsongname,tvsongtime1,tvsongtime2;
SeekBar seekBar;
ArrayList<Integer> songArrayList = new ArrayList<>();
ArrayList<String> songTitleList = new ArrayList<>();
ArrayList<Integer> songposterarray = new ArrayList<>();
Handler h = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_music);
ivsongimage = findViewById(R.id.iventertainmentSongImage);
tvsongname = findViewById(R.id.tventertainmentSongName);
tvsongtime1 = findViewById(R.id.tvmusicsongtime1);
tvsongtime2 = findViewById(R.id.tvmusicsongtime2);
ivsongprevious = findViewById(R.id.iventertainmentSongprevious);
ivsongback = findViewById(R.id.iventertainmentSongback);
ivsongplay = findViewById(R.id.iventertainmentSongplay);
ivsongforward = findViewById(R.id.iventertainmentSongforword);
ivsongnext = findViewById(R.id.iventertainmentSongnext);
seekBar = findViewById(R.id.sbentertainmentbar);

songArrayList.add(R.raw.gallangoodiyaan);
songArrayList.add(R.raw.kabira);
songArrayList.add(R.raw.nightchanges);

songposterarray.add(R.drawable.gallangoodiyaan);
songTitleList.add("GallanGoodiyaan");
songposterarray.add(R.drawable.kabira);
songTitleList.add("Kabira");
songposterarray.add(R.drawable.onedirection);
songTitleList.add("Night Changes");
ivsongplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mediaPlayer != null && mediaPlayer.isPlaying()){
mediaPlayer.pause();
ivsongplay.setImageResource(R.drawable.icon_play);
}else {
mediaPlayer.start();
ivsongplay.setImageResource(R.drawable.icon_pause);
}
}
});

seekBar.setOnSeekBarChangeListener(new
SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (fromUser)
{
mediaPlayer.seekTo(progress);
seekBar.setProgress(progress);
}
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {

@Override
public void onStopTrackingTouch(SeekBar seekBar) {

}
});
mediaPlayer = MediaPlayer.create(MusicActivity.this,
songArrayList.get(currentIndex));
ivsongplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
ivsongplay.setImageResource(R.drawable.icon_play);
} else {
tvsongname.setText(songTitleList.get(currentIndex));

ivsongimage.setImageResource(songposterarray.get(currentIndex));
seekBar.setMax(mediaPlayer.getDuration());

tvsongtime2.setText(formatTime(mediaPlayer.getDuration()));
mediaPlayer.start();
ivsongplay.setImageResource(R.drawable.icon_pause);
}
}
});
ivsongnext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nextSong();
}
});
ivsongprevious.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
previousSong();
}
});
ivsongforward.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
forwardSong();
}
});
ivsongback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
backwardSong();
}
});
mediaPlayer.setOnCompletionListener(new
MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
nextSong();
}
});
// Update the SeekBar position
h.postDelayed(updateSeekBar, 1000);
}
private void setupMediaPlayer() {
if (mediaPlayer != null) {
mediaPlayer.release();
}
mediaPlayer = MediaPlayer.create(MusicActivity.this,
songArrayList.get(currentIndex));
tvsongname.setText(songTitleList.get(currentIndex));
ivsongimage.setImageResource(songposterarray.get(currentIndex));
seekBar.setMax(mediaPlayer.getDuration());
tvsongtime2.setText(formatTime(mediaPlayer.getDuration()));
mediaPlayer.start();
ivsongplay.setImageResource(R.drawable.icon_pause);
mediaPlayer.setOnCompletionListener(new
MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
nextSong();
}
});
}
private void nextSong() {
currentIndex = (currentIndex + 1) % songArrayList.size();
setupMediaPlayer();
}
private void previousSong() {
currentIndex = (currentIndex - 1 < 0) ? (songArrayList.size() - 1)
: (currentIndex - 1);
setupMediaPlayer();
}
private void forwardSong() {
if (mediaPlayer != null) {
int newPosition = mediaPlayer.getCurrentPosition() + 5000;
//forward by 10 seconds
if (newPosition < mediaPlayer.getDuration())
{
mediaPlayer.seekTo(newPosition);
} else
{
Toast.makeText(this, "Cannot forward the song",
Toast.LENGTH_SHORT).show();
// nextsong();
}
}
}
private void backwardSong() {
if (mediaPlayer != null) {
int newPosition = mediaPlayer.getCurrentPosition() - 10000;
//backward by 10 seconds
if (newPosition > 0) {
mediaPlayer.seekTo(newPosition);
} else {
Toast.makeText(this, "Cannot backward the song",
Toast.LENGTH_SHORT).show();
// mediaPlayer.seekTo(0);
}
}
}
private Runnable updateSeekBar = new Runnable() {
@Override
public void run() {
if (mediaPlayer != null) {
seekBar.setProgress(mediaPlayer.getCurrentPosition());

tvsongtime1.setText(formatTime(mediaPlayer.getCurrentPosition()));
h.postDelayed(this, 1000);
}
}
};
private String formatTime(int millis) {
return String.format("%02d:%02d",
TimeUnit.MILLISECONDS.toMinutes(millis) %
TimeUnit.HOURS.toMinutes(1),
TimeUnit.MILLISECONDS.toSeconds(millis) %
TimeUnit.MINUTES.toSeconds(1));

}
}

activity_music
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/black">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="70sp"
android:gravity="center">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-thin"
android:text="Now Playing:"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold" />

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tventertainmentSongName"
android:textSize="16sp"
android:textColor="@color/white"
android:textStyle="bold"
android:fontFamily="sans-serif-thin"
android:layout_marginLeft="8dp"/>

</LinearLayout>

<ImageView
android:id="@+id/iventertainmentSongImage"
android:layout_width="250dp"
android:layout_height="228dp"
android:layout_marginLeft="80dp"
android:layout_marginTop="70dp"
android:src="@drawable/music2"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="40dp">

<SeekBar
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:id="@+id/sbentertainmentbar"
android:thumbTint="@color/pich"
android:progressTint="@color/pich"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"/>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="24dp"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:id="@+id/tvmusicsongtime1"
android:layout_marginLeft="10dp"
android:fontFamily="sans-serif-thin"
android:text="00.00"
android:textColor="@color/white"
android:textSize="15dp"
android:textStyle="bold" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:id="@+id/tvmusicsongtime2"
android:layout_marginLeft="290dp"
android:fontFamily="sans-serif-thin"
android:text="00.00"
android:textColor="@color/white"
android:textSize="15dp"
android:textStyle="bold" />

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="50sp"
android:layout_marginTop="20dp"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="5">

<ImageButton
android:id="@+id/iventertainmentSongprevious"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:src="@drawable/icon_previous" />

<ImageButton
android:id="@+id/iventertainmentSongback"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:src="@drawable/icon_back" />

<ImageButton
android:id="@+id/iventertainmentSongplay"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:src="@drawable/icon_play" />

<ImageButton
android:id="@+id/iventertainmentSongforword"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:src="@drawable/icon_forward" />

<ImageButton
android:id="@+id/iventertainmentSongnext"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:src="@drawable/icon_next" />

</LinearLayout>
</LinearLayout>

You might also like