Android 安卓:如何阻止其他活动媒体播放器?
我正在尝试创建一个音乐播放器。我的应用程序有2个玩家- (a)播放记忆中的歌曲 (b)使用URL播放在线音乐流 我的应用程序的主/默认活动是(a)。对于玩家(b)有一个单独的活动 问题是当用户按下活动(b)中的播放按钮来播放URL流时,内存中的曲目会被播放 活动(a)中的MediaPlayer似乎仍处于活动状态 所以我想:Android 安卓:如何阻止其他活动媒体播放器?,android,android-mediaplayer,Android,Android Mediaplayer,我正在尝试创建一个音乐播放器。我的应用程序有2个玩家- (a)播放记忆中的歌曲 (b)使用URL播放在线音乐流 我的应用程序的主/默认活动是(a)。对于玩家(b)有一个单独的活动 问题是当用户按下活动(b)中的播放按钮来播放URL流时,内存中的曲目会被播放 活动(a)中的MediaPlayer似乎仍处于活动状态 所以我想: 如果用户按下播放按钮,所有其他媒体播放器都会停止 有没有办法获得其他媒体播放器的参考资料;检查它们是否处于活动状态;如果是,那么阻止他们 从一个模糊的角度来看,我认为这可
- 如果用户按下播放按钮,所有其他媒体播放器都会停止 有没有办法获得其他媒体播放器的参考资料;检查它们是否处于活动状态;如果是,那么阻止他们
服务发送广播
来实现,并在那里创建一个函数来收听并停止播放器
但这对我来说似乎有点残忍&我应该如何获得(a)中玩家的参考
希望我已经澄清了我的疑问
请建议
谢谢您可以在项目中创建一个类,并将其称为MediaPlayerRegistry,在其中存储对当前使用的每个mediaPlayer对象的引用。并在应用程序中的任何位置访问它们,以停止/释放/重播它们。它看起来像这样:
public class MediaPlayerRegistry {
public static List<MediaPlayer> mList = new ArrayList<MediaPlayer>();
}
要将其添加到您的注册表。。。当您想要释放它时,请停止任何正在运行的对象
for ( MediaPlayer player : MediaPlayerRegistry.mList) {
if (player != null && player.isplaying() {
player.release();
}
}
只需将其视为您自己的MediaPlayer对象池即可您可以在项目中创建一个类,并将其称为MediaPlayerRegistry,在其中存储对当前使用的每个MediaPlayer对象的引用。并在应用程序中的任何位置访问它们,以停止/释放/重播它们。它看起来像这样:
public class MediaPlayerRegistry {
public static List<MediaPlayer> mList = new ArrayList<MediaPlayer>();
}
要将其添加到您的注册表。。。当您想要释放它时,请停止任何正在运行的对象
for ( MediaPlayer player : MediaPlayerRegistry.mList) {
if (player != null && player.isplaying() {
player.release();
}
}
只需将其视为您自己的MediaPlayer对象池谢谢,这是一个简单的解决方案。但是mediaPlayer可能没有播放,因此isplay()将返回false。如何解决?我做了一些回溯,发现了这个问题。谢谢你,这是一个简单的解决办法。但是mediaPlayer可能没有播放,因此isplay()将返回false。如何解决?我做了一些回溯,发现了这个问题。()