我正在尝试创建一个音乐播放器。我的应用程序有 2 位玩家 -
(a)播放记忆中的歌曲
(b)使用 URL 播放在线音乐流
我的应用程序的主/默认活动是(a)。对于玩家(b)有一项单独的活动。
问题是,当用户按下活动 (b) 中的播放按钮来播放 URL 流时,会播放内存中的曲目。
活动 (a) 中的 MediaPlayer 似乎仍然处于活动状态。
所以我想要:
从模糊的角度来看,我认为这可以通过发送broadcast
to the Service
活动(a),并在那里创建一个函数来监听它并停止播放器。
但这对我来说似乎有点粗鲁,而且我应该如何获得(a)中玩家的参考。
希望我已经消除了疑问。
请建议。
谢谢
您可以在项目中创建一个类并将其命名为 MediaPlayerRegistry,在其中存储对当前使用的每个 mediaPlayer 对象的引用。并在应用程序中的任何位置访问它们以停止/释放/重放它们。它看起来像这样:
public class MediaPlayerRegistry {
public static List<MediaPlayer> mList = new ArrayList<MediaPlayer>();
}
然后,您可以从您进行的任何活动中调用:
MediaPlayerRegistry.mList.put(MediaPlayer mPlayer);
将其添加到您的注册表中...并且当您想要释放它时停止任何正在运行的对象。
for ( MediaPlayer player : MediaPlayerRegistry.mList) {
if (player != null && player.isplaying() {
player.release();
}
}
只需将其视为您自己的 MediaPlayer 对象池
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)