Java 如何在多个片段之间共享MediaPlayer对象?

Java 如何在多个片段之间共享MediaPlayer对象?,java,android,android-fragments,android-mediaplayer,Java,Android,Android Fragments,Android Mediaplayer,我已经设置了1个主活动(扩展活动类)和2个片段(扩展片段类) 我试着设置一个接口,该接口由2个片段实现。每个片段从接口实现特定的功能,如下所示: public stopMusic() { mediaplay.release(); // here, the mediaplay object belongs to only the respective fragment } 现在,我知道这不起作用,因为MediaPlayer对象对两个片段都不通用,也就是说它们之间没有共享 我希望在Fragme

我已经设置了1个主活动(扩展活动类)和2个片段(扩展片段类)

我试着设置一个接口,该接口由2个片段实现。每个片段从接口实现特定的功能,如下所示:

public stopMusic()
{
  mediaplay.release(); // here, the mediaplay object belongs to only the respective fragment
}
现在,我知道这不起作用,因为MediaPlayer对象对两个片段都不通用,也就是说它们之间没有共享

我希望在Fragment1.java中释放mediaplayer对象流式传输文件,如果我点击另一个片段的按钮,比如Fragment2java。类似地,如果我点击Fragment1.java中的按钮,则要在Fragment2.java中释放mediaplayer对象流式传输文件


我怎样才能做到这一点?一个示例代码将非常有用。

假设片段A是控制片段,片段B是媒体播放器。所有沟通都应通过父活动完成。因此,在片段B中创建父活动实现的“公共接口”,然后父活动应该调用片段B中的方法

还取决于你对媒体播放器或其他东西的实际操作,它是否属于背景而不是片段B

注意:片段应该是松散耦合的,永远不要在片段之间进行通信,始终通过父活动进行通信


希望这有帮助。

您必须执行以下操作:

  • 在MainActivity中创建一个属性(将其称为
    myMediaPlayerObject
  • 在您的片段中,您可以获得如下所示的当前活动:
    activity a=getActivity()
  • 现在您可以强制转换此活动并调用如下函数:
    ((MainActivity)a).stopMusic()
    或直接使用对象
    ((MainActivity)a)。myMediaPlayerObject

谢谢,我已经更新了我的问题以了解更多细节。