SoundManager.java
3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.lotus.town.sound;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import com.lotus.town.utils.SharedPrefConfig;
import com.sdk.Sdk;
import java.io.IOException;
public class SoundManager {
private MediaPlayer mPowerCollectPlayer;
private MediaPlayer mHomePlayer;
private boolean isHomePlayer = false;
private boolean isSoundEnable;
private static SoundManager sManager = new SoundManager();
public static SoundManager getInstance(){
if(sManager == null){
sManager = new SoundManager();
}
return sManager;
}
private SoundManager(){
isSoundEnable = SharedPrefConfig.getInstance(Sdk.app()).isSoundEnable();
}
public void stopAll(){
isSoundEnable = false;
SharedPrefConfig.getInstance(Sdk.app()).soundOff();
stopPowerCollect();
homeStop();
}
public void start(){
isSoundEnable = true;
SharedPrefConfig.getInstance(Sdk.app()).soundOn();
homePlayer();
}
private abstract class CompleteListener{
public abstract void onComplete();
}
private MediaPlayer startPlay(String name, boolean loop, final CompleteListener listener){
if(!isSoundEnable){
return null;
}
MediaPlayer player = null;
try {
player = new MediaPlayer();
AssetManager assetManager = Sdk.app().getAssets();
AssetFileDescriptor fileDescriptor = assetManager.openFd(name);
player.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(),
fileDescriptor.getStartOffset());
player.prepare();
player.setLooping(loop);
player.start();
if(listener != null) {
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
listener.onComplete();
}
});
}
} catch (IOException e) {
e.printStackTrace();
}
return player;
}
public void jumpMoney(){
startPlay("jump_money.mp3",false,null);
}
public void jumpLucky(){
startPlay("jump_lucky.mp3",false,null);
}
public void jumpBomp(){
startPlay("jump_bomp.mp3",false,null);
}
public void homePlayer(){
if(!isSoundEnable|| isHomePlayer){
return;
}
isHomePlayer = true;
mHomePlayer = startPlay("home.mp3",true,null);
}
public void homeStop(){
if(mHomePlayer != null) {
mHomePlayer.stop();
isHomePlayer = false;
mHomePlayer = null;
}
}
public void playerPowerCollect(){
mPowerCollectPlayer = startPlay("power_collect.mp3",true,null);
}
public void stopPowerCollect(){
if(mPowerCollectPlayer != null){
mPowerCollectPlayer.stop();
mPowerCollectPlayer = null;
}
}
}