【发布时间】:2020-12-10 00:53:50
【问题描述】:
我一直在尝试在 android studio 中开发一个有一些背景音乐的应用程序,当我最小化应用程序/关闭应用程序/将应用程序放在后台时,音乐奇怪地一直在播放。我的意图是应用程序在不可见时不会发出任何声音。
有什么方法可以在应用程序进入后台时完全静音?目前所有声音都是使用 SoundPool 完成的。
到目前为止,我还没有尝试太多,因为我找不到有关我正在尝试做什么的有用信息。
【问题讨论】:
我一直在尝试在 android studio 中开发一个有一些背景音乐的应用程序,当我最小化应用程序/关闭应用程序/将应用程序放在后台时,音乐奇怪地一直在播放。我的意图是应用程序在不可见时不会发出任何声音。
有什么方法可以在应用程序进入后台时完全静音?目前所有声音都是使用 SoundPool 完成的。
到目前为止,我还没有尝试太多,因为我找不到有关我正在尝试做什么的有用信息。
【问题讨论】:
使用生命周期方法暂停恢复背景歌曲
@Override
protected void onPause() {
super.onPause();
// pause your soundpool here
}
然后 onResume
@Override
protected void onResume() {
super.onResume();
//resume that background song again
}
【讨论】:
SoundPool 具有pause 和resume 函数。您可以根据活动生命周期事件调用这些函数。
也就是说,SoundPool 可能不是音乐的最佳选择。至少据我所知,它会将您加载的声音解码为原始音频数据,这些数据对于音乐曲目来说可能相当大。根据您的具体操作,MediaPlayer 或 ExoPlayer 可能是更好的选择。
【讨论】: