Skip to content

Commit f4965e2

Browse files
a.levchenkonewnon
authored andcommitted
fix external player muting. add audiofocus flag
1 parent 1236514 commit f4965e2

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

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

Lines changed: 5 additions & 1 deletion
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);
@@ -183,7 +187,7 @@ public void onWindowFocusChanged(boolean hasFocus) {
183187
this.hasFocus = hasFocus;
184188
resumeIfHasFocus();
185189
}
186-
190+
187191
private void resumeIfHasFocus() {
188192
if(hasFocus) {
189193
this.hideVirtualButton();

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)