gpt4 book ai didi

java - 在后台播放音乐文件时,根据服务中的 MediaPlayer 对象更新 Activity 中的 Ui 组件

转载 作者:搜寻专家 更新时间:2023-11-01 08:04:07 26 4
gpt4 key购买 nike

我正在根据 Android Hive 中的教程创建一个 Android 音乐播放器,这里是链接。

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

这是创建这样一个音乐播放器的教程。

enter image description here

现在我已经使用本教程成功创建了我的自定义音乐播放器,但它们存在问题,即它不在后台播放音乐。于是搜索了一下,发现了这篇帖子

Playing BG Music Across Activities in Android

而且我发现我必须从 Android Service 运行 MediaPlayer 类。所以我使用了 Android Service ,创建了播放和暂停的方法,现在我的背景音乐运行成功了。

现在这是主要问题

如何从依赖于 MediaPlayer 对象的服务更新此组件,如 seekbarTimer 等。我无法得到那个。

因为这些依赖于媒体播放器对象,而 MediaPlayer 对象现在在服务中。

最佳答案

最好的方法是使用自定义 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"));

关于java - 在后台播放音乐文件时,根据服务中的 MediaPlayer 对象更新 Activity 中的 Ui 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16832389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com