2

I am creating an Android music player based on the tutorial from Android Hive here is the link.

http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/

Which is tutorial for creating an music player like this.

enter image description here

Now I have successfully created my customized music player using this tutorial but their is a problem in that i.e. it doesn't play music in background. So searched for it and found this post

Playing BG Music Across Activities in Android

and I have found that I have to run MediaPlayer class from Android Service. So I used Android Service , created methods for play and pause and now my background music is running successfully.

Now here is the main problem

How can I update this components from the service which are dependent on MediaPlayer object like seekbar, Timer e.t.c. I am not able to get that.

Because these are dependent on media player object and MediaPlayer object is now in Service.

halfer
  • 19,824
  • 17
  • 99
  • 186
Nikhil Agrawal
  • 26,128
  • 21
  • 90
  • 126

2 Answers2

2

I am just near to finish my Music app now. I have study this code of the Android Default Music app. which help me a lot.

You can see that here: Platform_pkg_App_for_Music

Naresh Sharma
  • 4,323
  • 7
  • 48
  • 68
Shreyash Mahajan
  • 23,386
  • 35
  • 116
  • 188
2

Best way is to use Custom BroadcastReceiver , You can send song name , artist etc details in PutExtra and inside Activity you need to create OnReceiver() and you can get this details using intent.getStringExtra("message");

Write this in ServiceA.java

 Intent intent = new Intent();
 intent.putExtra("message","hi");
 intent.setAction("com.android.activity.SEND_DATA");
 context.sendBroadcast(intent); 

Write this in ActivityA.java

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
   // Extract data included in the Intent
   String message = intent.getStringExtra("message");
   Log.d("receiver", "Got message: " + message);
  }
};

Now register Receiver

LocalBroadcastManager.getInstance(mContext).registerReceiver(mMessageReceiver,
  new IntentFilter("com.android.activity.SEND_DATA"));   
Ronak Mehta
  • 5,971
  • 5
  • 42
  • 69