Music App
Music App
xml
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
app:srcCompat="@drawable/player" />
<SeekBar
android:id="@+id/musicbar"
android:min="0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ImageButton
android:id="@+id/btnPlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="play"
app:srcCompat="@drawable/play" />
<ImageButton
android:id="@+id/btnFrwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="forword"
app:srcCompat="@drawable/frwd" />
<ImageButton
android:id="@+id/btnBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="backward"
app:srcCompat="@drawable/back" />
<ImageButton
android:id="@+id/btnPause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="pause"
app:srcCompat="@drawable/pause" />
</LinearLayout>
</LinearLayout>
**MainActivity.java
package com.example.musicapp;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import androidx.appcompat.app.AppCompatActivity;
import java.io.IOException;
mPlayer=MediaPlayer.create(MainActivity.this,R.raw.song);
totalDuration= mPlayer.getDuration();
sbMusic.setMax(totalDuration);
sbMusic.setEnabled(false);
handler.postDelayed(this,100);
@Override
public void onClick(View view) {
if(view.getId()==R.id.btnPlay)
{
mPlayer.start();
}
else if(view.getId()==R.id.btnFrwd)
{
if((currentTime+frwdBackTime)<totalDuration)
{
mPlayer.seekTo(currentTime+frwdBackTime);
sbMusic.setProgress(currentTime+frwdBackTime);
}
}
else if(view.getId()==R.id.btnBack)
{
if((currentTime-frwdBackTime)>0)
{
mPlayer.seekTo(currentTime-frwdBackTime);
sbMusic.setProgress(currentTime-frwdBackTime);
}
}
else
{
mPlayer.pause();
handler.removeCallbacks(this);
}
@Override
public void run() {
currentTime=mPlayer.getCurrentPosition();
sbMusic.setProgress(currentTime);
handler.postDelayed(this, 100);
}
}
**AndroidManifest.xml
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MusicApp"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</manifest>
**Output