当前位置: 代码迷 >> Android >> [新手]同一个Activity下两个fragment同时播放音乐,真糟糕
  详细解决方案

[新手]同一个Activity下两个fragment同时播放音乐,真糟糕

热度:90   发布时间:2016-04-28 05:00:18.0
[新手求救]同一个Activity下两个fragment同时播放音乐,真糟糕
我在同一个Activity下有两个Fragment,分别是本地音乐和在线音乐
点击都可以播放音乐
但是我发现两边能同时播放,很吵杂,不知道该如何优化
public void playMusic(final String path) {
// 异步线程播放音乐
new Thread() {
public void run() {
try {
if (player != null) {
player.stop();
player.reset();// 重置
player.setDataSource(path);// 多媒体来源
player.prepare();// 准备(同步)
player.start();// 开始播放
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}

public void stopMusic() {
if (player != null) {
player.stop();
}
}

------解决方案--------------------
那你在fragment中设置一个属性判断当前fragment是否在运行音乐,然后在activity中获取这个判断,在切换fragment的时候,判断该属性状态来设置是否播放音乐
------解决方案--------------------
play时加上同步锁
------解决方案--------------------
那可以你将播放音乐的方法写成公共的,都调用这一个方法,切换点击的时候,传入你想播放的音乐,直接播放你点击的音乐
------解决方案--------------------
可以只用同一个Mideplayer

设置一个单例模式
  相关解决方案