Android Service controlling MediaPlayer
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.
Admin
Updated on June 11, 2022Comments
-
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(); } }