Android:如何阻止其他活跃的媒体播放器?

rei*_*ley 0 android android-mediaplayer

我正在尝试创建一个音乐播放器.我的申请有2名球员 -

(a)从记忆中播放歌曲

(b)使用URL播放在线音乐流

我的应用的主页/默认活动是(a).对于玩家(b),有一个单独的活动.

问题是当用户按下活动(b)中的播放按钮播放URL流时,播放来自内存的曲目.

似乎活动(a)中的MediaPlayer仍处于活动状态.

所以我想:

  • 如果用户按下播放按钮,则所有其他媒体播放器都会停止.

    有没有办法获得其他媒体播放器的参考; 检查它们是否有效; 如果是,那就停止它们.

从模糊的角度来看,我认为这可以通过向活动(a)发送一个功能broadcast来完成Service,并在那里制作一个能够收听并停止播放器的功能.

但这对我来说似乎有点粗野,我应该如何在(a)中获得玩家的参考.

希望我已经清除了我的怀疑.

请建议.

谢谢

Mr.*_*.Me 5

您可以在项目中创建一个类,并将其命名为MediaPlayerRegistry,您可以在其中存储对当前使用的每个mediaPlayer对象的引用.并在您的应用中的任何位置访问它们以停止/释放/重播它们.它看起来像这样:

public class MediaPlayerRegistry {
      public static List<MediaPlayer> mList = new ArrayList<MediaPlayer>();
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过任何活动致电:

MediaPlayerRegistry.mList.put(MediaPlayer mPlayer);
Run Code Online (Sandbox Code Playgroud)

将它添加到您的注册表...当您想要释放它时,停止任何正在运行的对象.

for ( MediaPlayer player : MediaPlayerRegistry.mList) {
if (player != null && player.isplaying() {
      player.release();
}
}
Run Code Online (Sandbox Code Playgroud)

只需将其视为您自己的MediaPlayer对象池