如何在进入后台时将 Android 应用程序静音
How to mute an Android application when it goes into the background
我一直在尝试开发一个在 android studio 中有一些背景音乐的应用程序,当我最小化 application/closed application/put 应用程序时,背景音乐很奇怪一直在玩。我的意图是应用程序在不可见时不发出任何声音。
有什么方法可以让应用程序在进入后台时完全静音?目前所有声音都是使用 SoundPool 完成的。
到目前为止我还没有尝试太多,因为我找不到关于我正在尝试做的事情的有用信息。
SoundPool
有 pause and resume 个函数。您可以根据需要调用这些函数以响应 activity 生命周期事件。
也就是说,SoundPool
可能不是音乐的最佳选择。至少据我所知,它将您加载的声音解码为原始音频数据,这对于音乐曲目来说可能相当大。根据您的具体操作,MediaPlayer or ExoPlayer 可能是更好的选择。
使用生命周期方法暂停恢复背景歌曲
@Override
protected void onPause() {
super.onPause();
// pause your soundpool here
}
然后在 onResume
@Override
protected void onResume() {
super.onResume();
//resume that background song again
}
我一直在尝试开发一个在 android studio 中有一些背景音乐的应用程序,当我最小化 application/closed application/put 应用程序时,背景音乐很奇怪一直在玩。我的意图是应用程序在不可见时不发出任何声音。
有什么方法可以让应用程序在进入后台时完全静音?目前所有声音都是使用 SoundPool 完成的。
到目前为止我还没有尝试太多,因为我找不到关于我正在尝试做的事情的有用信息。
SoundPool
有 pause and resume 个函数。您可以根据需要调用这些函数以响应 activity 生命周期事件。
也就是说,SoundPool
可能不是音乐的最佳选择。至少据我所知,它将您加载的声音解码为原始音频数据,这对于音乐曲目来说可能相当大。根据您的具体操作,MediaPlayer or ExoPlayer 可能是更好的选择。
使用生命周期方法暂停恢复背景歌曲
@Override
protected void onPause() {
super.onPause();
// pause your soundpool here
}
然后在 onResume
@Override
protected void onResume() {
super.onResume();
//resume that background song again
}