Android Service controlling MediaPlayer

11,169

player.stop();----- this line must be giving you nullPointerException.

private MediaPlayer player; here you are creating only reference.But object you are creating in onCreate() has local scope only. Please create an object having class level scope, then it will work.

Share:
11,169
Admin
Author by

Admin

Updated on June 11, 2022

Comments

  • Admin
    Admin almost 2 years

    All I want to do is simply control background music in my app through a service so I am able to start it and stop it from any activity.

    I have everything set up perfectly when I tell the service to Toast when it is started and destroyed but as soon as I put the media playin in there instead It starts fine and starts playing the music but as soon as a click a button to stop the service I get an error and a force close.

    PLEASE someone help me see what I am doing wrong.. I am pretty new to android developing I'm guessing it's going to be something easy.

    Here is my code:

    import android.app.Service;
    
    import android.content.Intent;
    
    import android.media.MediaPlayer;
    
    import android.os.IBinder;
    
    import android.widget.Toast;
    
    public class MyService extends Service {
    
        private MediaPlayer player;
    
        @Override
        public IBinder onBind(Intent intent) {
    
            return null;
    
        }
    
        @Override
        public void onCreate() {
    
            super.onCreate();
    
            Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
    
            MediaPlayer player = MediaPlayer.create(MyService.this, R.raw.my_music);
    
            player.start();
    
            player.setLooping(true);
    
        }
    
        @Override
        public void onDestroy() {
    
            super.onDestroy();
    
            player.stop();
    
            Toast.makeText(this, "Service Stopped", Toast.LENGTH_SHORT).show();
    
        }
    
    }