How to play background music in Android app?

This example demonstrates how do I play background music in android.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:gravity="center_horizontal"
   android:orientation="vertical"
   android:padding="16dp">
   <Button
      android:onClick="PlayBackgroundSound"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Run background Sound"/>
   <TextView
      android:layout_marginTop="20dp"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="16sp"
      android:textStyle="bold"
      android:text="Playing Music in Background"/>
</LinearLayout>
Step 3 − Add the following code to src/MainActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
   public void PlayBackgroundSound(View view) {
      Intent intent = new Intent(MainActivity.this, BackgroundSoundService.class);
      startService(intent);
   }
}
Step 4 − Create a raw Android resource file, copy-paste an audio file which you want to play in the background (audio.mp3)
Step 5 − Create a new java class (BackgroundSoundService.java and the following code −
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.widget.Toast;
import androidx.annotation.Nullable;
public class BackgroundSoundService extends Service {
   MediaPlayer mediaPlayer;
   @Nullable
   @Override
   public IBinder onBind(Intent intent) {
      return null;
   }
   @Override
   public void onCreate() {
      super.onCreate();
      mediaPlayer = MediaPlayer.create(this, R.raw.sound);
      mediaPlayer.setLooping(true); // Set looping
      mediaPlayer.setVolume(100, 100);
   }
   public int onStartCommand(Intent intent, int flags, int startId) {
      mediaPlayer.start();
      Toast.makeText(getApplicationContext(), "Playing Bohemian Rashpody in the Background",    Toast.LENGTH_SHORT).show();
      return startId;
   }
   public void onStart(Intent intent, int startId) {
   }
   @Override
   public void onDestroy() {
      mediaPlayer.stop();
      mediaPlayer.release();
   }
   @Override
   public void onLowMemory() {
   }
}
Step 6 − Add the following code to androidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="app.com.sample">
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
      <service android:name=".BackgroundSoundService" />
   </application>
</manifest>
Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from the android studio, open one of your project's activity files and click the Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −