Skip to content

Commit 7f095a7

Browse files
committed
Merge commit 'refs/pull/18640/head' of https://github.com/cocos2d/cocos2d-x into scgamex-v3
2 parents 82c187f + f4965e2 commit 7f095a7

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ public void setEnableVirtualButton(boolean value) {
9191
this.showVirtualButton = value;
9292
}
9393

94+
public void setEnableAudioFocusGain(boolean value) {
95+
Cocos2dxAudioFocusManager.gainAudioFocus = value;
96+
}
97+
9498
protected void onLoadNativeLibraries() {
9599
try {
96100
ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);

cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAudioFocusManager.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class Cocos2dxAudioFocusManager {
3636
private final static int AUDIOFOCUS_LOST = 1;
3737
private final static int AUDIOFOCUS_LOST_TRANSIENT = 2;
3838
private final static int AUDIOFOCUS_LOST_TRANSIENT_CAN_DUCK = 3;
39+
public static boolean gainAudioFocus = true;
3940

4041
private static AudioManager.OnAudioFocusChangeListener sAfChangeListener =
4142
new AudioManager.OnAudioFocusChangeListener() {
@@ -91,18 +92,20 @@ public void run() {
9192
};
9293

9394
static boolean registerAudioFocusListener(Context context) {
94-
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
95+
if (gainAudioFocus) {
96+
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
9597

96-
// Request audio focus for playback
97-
int result = am.requestAudioFocus(sAfChangeListener,
98+
// Request audio focus for playback
99+
int result = am.requestAudioFocus(sAfChangeListener,
98100
// Use the music stream.
99101
AudioManager.STREAM_MUSIC,
100102
// Request permanent focus.
101103
AudioManager.AUDIOFOCUS_GAIN);
102104

103-
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
104-
Log.d(TAG, "requestAudioFocus succeed");
105-
return true;
105+
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
106+
Log.d(TAG, "requestAudioFocus succeed");
107+
return true;
108+
}
106109
}
107110

108111
Log.e(TAG, "requestAudioFocus failed!");

0 commit comments

Comments
 (0)