我在同一个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
设置一个单例模式