Skip to content

Commit

Permalink
android: AudioFocus api compatible
Browse files Browse the repository at this point in the history
  • Loading branch information
zxcpoiu committed Dec 8, 2021
1 parent 7a48b8b commit f29b1f9
Showing 1 changed file with 66 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,14 @@ private void stopEvents() {
}

private void requestAudioFocus() {
if (android.os.Build.VERSION.SDK_INT >= 26) {
requestAudioFocusV26();
} else {
requestAudioFocusOld();
}
}

private void requestAudioFocusV26() {
if (isAudioFocused) {
return;
}
Expand All @@ -661,6 +669,7 @@ private void requestAudioFocus() {
}

int requestAudioFocusRes = audioManager.requestAudioFocus(mAudioFocusRequest);

String requestAudioFocusResStr;
switch (requestAudioFocusRes) {
case AudioManager.AUDIOFOCUS_REQUEST_FAILED:
Expand All @@ -677,10 +686,43 @@ private void requestAudioFocus() {
requestAudioFocusResStr = "AUDIOFOCUS_REQUEST_UNKNOWN";
break;
}

Log.d(TAG, "requestAudioFocus(): res = " + requestAudioFocusRes + " - " + requestAudioFocusResStr);
}

private void requestAudioFocusOld() {
if (isAudioFocused) {
return;
}

int requestAudioFocusRes = audioManager.requestAudioFocus(mOnFocusChangeListener, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);

String requestAudioFocusResStr;
switch (requestAudioFocusRes) {
case AudioManager.AUDIOFOCUS_REQUEST_FAILED:
requestAudioFocusResStr = "AUDIOFOCUS_REQUEST_FAILED";
break;
case AudioManager.AUDIOFOCUS_REQUEST_GRANTED:
isAudioFocused = true;
requestAudioFocusResStr = "AUDIOFOCUS_REQUEST_GRANTED";
break;
default:
requestAudioFocusResStr = "AUDIOFOCUS_REQUEST_UNKNOWN";
break;
}

Log.d(TAG, "requestAudioFocus(): res = " + requestAudioFocusRes + " - " + requestAudioFocusResStr);
}

private void abandonAudioFocus() {
if (android.os.Build.VERSION.SDK_INT >= 26) {
abandonAudioFocusV26();
} else {
abandonAudioFocusOld();
}
}

private void abandonAudioFocusV26() {
if (!isAudioFocused || mAudioFocusRequest == null) {
return;
}
Expand All @@ -702,6 +744,30 @@ private void abandonAudioFocus() {
Log.d(TAG, "abandonAudioFocus(): res = " + abandonAudioFocusRes + " - " + abandonAudioFocusResStr);
}

private void abandonAudioFocusOld() {
if (!isAudioFocused) {
return;
}

int abandonAudioFocusRes = audioManager.abandonAudioFocus(null);

String abandonAudioFocusResStr;
switch (abandonAudioFocusRes) {
case AudioManager.AUDIOFOCUS_REQUEST_FAILED:
abandonAudioFocusResStr = "AUDIOFOCUS_REQUEST_FAILED";
break;
case AudioManager.AUDIOFOCUS_REQUEST_GRANTED:
isAudioFocused = false;
abandonAudioFocusResStr = "AUDIOFOCUS_REQUEST_GRANTED";
break;
default:
abandonAudioFocusResStr = "AUDIOFOCUS_REQUEST_UNKNOWN";
break;
}

Log.d(TAG, "abandonAudioFocus(): res = " + abandonAudioFocusRes + " - " + abandonAudioFocusResStr);
}

@ReactMethod
public void pokeScreen(int timeout) {
Log.d(TAG, "pokeScreen()");
Expand Down

0 comments on commit f29b1f9

Please sign in to comment.