49 lines
2.3 KiB
Java
49 lines
2.3 KiB
Java
package androidx.media;
|
|
|
|
import android.media.AudioManager;
|
|
import android.os.Build;
|
|
import androidx.annotation.IntRange;
|
|
import androidx.annotation.NonNull;
|
|
public final class AudioManagerCompat {
|
|
public static final int AUDIOFOCUS_GAIN = 1;
|
|
public static final int AUDIOFOCUS_GAIN_TRANSIENT = 2;
|
|
public static final int AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE = 4;
|
|
public static final int AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK = 3;
|
|
private static final String TAG = "AudioManCompat";
|
|
|
|
private AudioManagerCompat() {
|
|
}
|
|
|
|
public static int abandonAudioFocusRequest(@NonNull AudioManager audioManager, @NonNull AudioFocusRequestCompat audioFocusRequestCompat) {
|
|
if (audioManager == null) {
|
|
throw new IllegalArgumentException("AudioManager must not be null");
|
|
} else if (audioFocusRequestCompat != null) {
|
|
return Build.VERSION.SDK_INT >= 26 ? audioManager.abandonAudioFocusRequest(audioFocusRequestCompat.getAudioFocusRequest()) : audioManager.abandonAudioFocus(audioFocusRequestCompat.getOnAudioFocusChangeListener());
|
|
} else {
|
|
throw new IllegalArgumentException("AudioFocusRequestCompat must not be null");
|
|
}
|
|
}
|
|
|
|
@IntRange(from = 0)
|
|
public static int getStreamMaxVolume(@NonNull AudioManager audioManager, int i) {
|
|
return audioManager.getStreamMaxVolume(i);
|
|
}
|
|
|
|
@IntRange(from = 0)
|
|
public static int getStreamMinVolume(@NonNull AudioManager audioManager, int i) {
|
|
if (Build.VERSION.SDK_INT >= 28) {
|
|
return audioManager.getStreamMinVolume(i);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public static int requestAudioFocus(@NonNull AudioManager audioManager, @NonNull AudioFocusRequestCompat audioFocusRequestCompat) {
|
|
if (audioManager == null) {
|
|
throw new IllegalArgumentException("AudioManager must not be null");
|
|
} else if (audioFocusRequestCompat != null) {
|
|
return Build.VERSION.SDK_INT >= 26 ? audioManager.requestAudioFocus(audioFocusRequestCompat.getAudioFocusRequest()) : audioManager.requestAudioFocus(audioFocusRequestCompat.getOnAudioFocusChangeListener(), audioFocusRequestCompat.getAudioAttributesCompat().getLegacyStreamType(), audioFocusRequestCompat.getFocusGain());
|
|
} else {
|
|
throw new IllegalArgumentException("AudioFocusRequestCompat must not be null");
|
|
}
|
|
}
|
|
}
|