我正在创建一个基于Android Hive教程的Android音乐播放器,这里是链接。
http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/
这是创建这样的音乐播放器的教程。
现在我已经使用本教程成功创建了我的自定义音乐播放器,但它们是一个问题,即它不在后台播放音乐。所以搜索它并发现这篇文章
Playing BG Music Across Activities in Android
我发现我必须从Android Service
运行MediaPlayer类。所以我使用了Android Service,创建了播放和暂停的方法,现在我的背景音乐已成功运行。
现在这是主要问题
如何从服务中更新此组件,这些组件依赖于MediaPlayer对象,如搜索栏,计时器 e.t.c.我无法得到它。
因为它们依赖于媒体播放器对象,而MediaPlayer对象现在处于服务状态。
答案 0 :(得分:2)
我即将完成我的音乐应用程序。 我已经研究了Android默认音乐应用的这段代码。这对我很有帮助。
您可以在此处看到:Platform_pkg_App_for_Music
答案 1 :(得分:2)
最好的方法是使用自定义BroadcastReceiver
,您可以在PutExtra
和Activity
内发送歌曲名称,艺术家等详细信息,您需要创建OnReceiver()
,然后您就可以获得此详细信息使用intent.getStringExtra("message");
将此内容写入 ServiceA.java
Intent intent = new Intent();
intent.putExtra("message","hi");
intent.setAction("com.android.activity.SEND_DATA");
context.sendBroadcast(intent);
将此内容写入 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);
}
};
现在注册Receiver
LocalBroadcastManager.getInstance(mContext).registerReceiver(mMessageReceiver,
new IntentFilter("com.android.activity.SEND_DATA"));