我目前有一个应用程序 (Java),它使用带有底部导航的导航组件。每个标签都有一个片段。
其中一个片段导航到具有音频播放器(使用媒体播放器)的辅助片段。这个奥迪片段有以下代码,当我回到父片段时停止音频:
@Override
public void onDestroy() {
super.onDestroy();
if (mp != null) {
mp.pause();
mp = null;
}
}
问题是,当音频正在播放时,我点击底部导航中的不同选项卡,音频会继续播放。我想到了使用以下内容:
@Override
public void onStop() {
super.onStop();
if (mp != null) {
mp.pause();
mp = null;
}
}
这解决了问题,但也阻止了在屏幕关闭时播放音频。 (当 onStop 不存在时,这不会发生)。
这个想法是在用户点击任何底部导航选项卡时执行 pause() 函数。
以我目前的结构,当用户点击底部选项卡时,如何让声音停止?
答案 0 :(得分:0)
您可以使用“setOnNavigationItemSelectedListener()”来监听底部导航的点击。
如果用户选择了音频播放器内的项目以外的项目,则调用 stopAudioPlayer 函数
示例:-
navBottom.setOnNavigationItemSelectedListener(item -> {
if (item.getItemId() != R.id.nav_bottom_audio_player)
stopAudioPlayer();
return true;
});