如何在离开我的应用程序时停止 MediaPlayer,而不是在我移动到另一个 Activity (Android Studio) 时停止
How can I stop MediaPlayer when I leave my application, but not when I move to another Activity (Android Studio)
我正在尝试在 android studio 上制作一款游戏,即使您切换活动,背景音乐也会持续播放,但我希望音乐在用户离开应用程序时停止。我搜索了 Whosebug,并尝试使用我从下面的 here 中找到的解决方案:
public class BackgroundSoundService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.idil);
player.setLooping(true); // Set looping
player.setVolume(100,100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return 1;
}
@Override
public void onDestroy() {
player.stop();
player.release();
}
}
MediaPlayer 在所有活动中播放的声音问题是,当我使用主页按钮离开应用程序时,或者当我锁定 phone 时,声音不会停止,只有当我实际关闭帮助。
如有任何帮助,我们将不胜感激。
您可以使用进程生命周期来监听应用何时进入后台并停止它
- 在 build.gradle
中添加依赖项
implementation "androidx.lifecycle:lifecycle-process:2.2.0"
- 创建自定义应用程序,不要忘记在 AndroidManifest 中声明它
public class CustomApplication extends Application implements LifecycleObserver {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onAppBackgrounded() {
// your app come to background
stopService(new Intent(this, BackgroundSoundService.class));
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onAppForegrounded() {
// your app come to foreground
}
}
我正在尝试在 android studio 上制作一款游戏,即使您切换活动,背景音乐也会持续播放,但我希望音乐在用户离开应用程序时停止。我搜索了 Whosebug,并尝试使用我从下面的 here 中找到的解决方案:
public class BackgroundSoundService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.idil);
player.setLooping(true); // Set looping
player.setVolume(100,100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return 1;
}
@Override
public void onDestroy() {
player.stop();
player.release();
}
}
MediaPlayer 在所有活动中播放的声音问题是,当我使用主页按钮离开应用程序时,或者当我锁定 phone 时,声音不会停止,只有当我实际关闭帮助。
如有任何帮助,我们将不胜感激。
您可以使用进程生命周期来监听应用何时进入后台并停止它
- 在 build.gradle 中添加依赖项
implementation "androidx.lifecycle:lifecycle-process:2.2.0"
- 创建自定义应用程序,不要忘记在 AndroidManifest 中声明它
public class CustomApplication extends Application implements LifecycleObserver {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onAppBackgrounded() {
// your app come to background
stopService(new Intent(this, BackgroundSoundService.class));
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onAppForegrounded() {
// your app come to foreground
}
}