mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 23:32:59 +00:00 
			
		
		
		
	Merge pull request #5065 from TacoTheDank/androidx-media-audioreactor
Use AndroidX Media compat in AudioReactor
This commit is contained in:
		| @@ -5,14 +5,14 @@ import android.animation.AnimatorListenerAdapter; | ||||
| import android.animation.ValueAnimator; | ||||
| import android.content.Context; | ||||
| import android.content.Intent; | ||||
| import android.media.AudioFocusRequest; | ||||
| import android.media.AudioManager; | ||||
| import android.media.audiofx.AudioEffect; | ||||
| import android.os.Build; | ||||
| import android.util.Log; | ||||
|  | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.core.content.ContextCompat; | ||||
| import androidx.media.AudioFocusRequestCompat; | ||||
| import androidx.media.AudioManagerCompat; | ||||
|  | ||||
| import com.google.android.exoplayer2.SimpleExoPlayer; | ||||
| import com.google.android.exoplayer2.analytics.AnalyticsListener; | ||||
| @@ -21,20 +21,17 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An | ||||
|  | ||||
|     private static final String TAG = "AudioFocusReactor"; | ||||
|  | ||||
|     private static final boolean SHOULD_BUILD_FOCUS_REQUEST = | ||||
|             Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; | ||||
|  | ||||
|     private static final int DUCK_DURATION = 1500; | ||||
|     private static final float DUCK_AUDIO_TO = .2f; | ||||
|  | ||||
|     private static final int FOCUS_GAIN_TYPE = AudioManager.AUDIOFOCUS_GAIN; | ||||
|     private static final int FOCUS_GAIN_TYPE = AudioManagerCompat.AUDIOFOCUS_GAIN; | ||||
|     private static final int STREAM_TYPE = AudioManager.STREAM_MUSIC; | ||||
|  | ||||
|     private final SimpleExoPlayer player; | ||||
|     private final Context context; | ||||
|     private final AudioManager audioManager; | ||||
|  | ||||
|     private final AudioFocusRequest request; | ||||
|     private final AudioFocusRequestCompat request; | ||||
|  | ||||
|     public AudioReactor(@NonNull final Context context, | ||||
|                         @NonNull final SimpleExoPlayer player) { | ||||
| @@ -43,15 +40,11 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An | ||||
|         this.audioManager = ContextCompat.getSystemService(context, AudioManager.class); | ||||
|         player.addAnalyticsListener(this); | ||||
|  | ||||
|         if (SHOULD_BUILD_FOCUS_REQUEST) { | ||||
|             request = new AudioFocusRequest.Builder(FOCUS_GAIN_TYPE) | ||||
|                     .setAcceptsDelayedFocusGain(true) | ||||
|                     .setWillPauseWhenDucked(true) | ||||
|                     .setOnAudioFocusChangeListener(this) | ||||
|                     .build(); | ||||
|         } else { | ||||
|             request = null; | ||||
|         } | ||||
|         request = new AudioFocusRequestCompat.Builder(FOCUS_GAIN_TYPE) | ||||
|                 //.setAcceptsDelayedFocusGain(true) | ||||
|                 .setWillPauseWhenDucked(true) | ||||
|                 .setOnAudioFocusChangeListener(this) | ||||
|                 .build(); | ||||
|     } | ||||
|  | ||||
|     public void dispose() { | ||||
| @@ -64,19 +57,11 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An | ||||
|     //////////////////////////////////////////////////////////////////////////*/ | ||||
|  | ||||
|     public void requestAudioFocus() { | ||||
|         if (SHOULD_BUILD_FOCUS_REQUEST) { | ||||
|             audioManager.requestAudioFocus(request); | ||||
|         } else { | ||||
|             audioManager.requestAudioFocus(this, STREAM_TYPE, FOCUS_GAIN_TYPE); | ||||
|         } | ||||
|         AudioManagerCompat.requestAudioFocus(audioManager, request); | ||||
|     } | ||||
|  | ||||
|     public void abandonAudioFocus() { | ||||
|         if (SHOULD_BUILD_FOCUS_REQUEST) { | ||||
|             audioManager.abandonAudioFocusRequest(request); | ||||
|         } else { | ||||
|             audioManager.abandonAudioFocus(this); | ||||
|         } | ||||
|         AudioManagerCompat.abandonAudioFocusRequest(audioManager, request); | ||||
|     } | ||||
|  | ||||
|     public int getVolume() { | ||||
| @@ -88,7 +73,7 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An | ||||
|     } | ||||
|  | ||||
|     public int getMaxVolume() { | ||||
|         return audioManager.getStreamMaxVolume(STREAM_TYPE); | ||||
|         return AudioManagerCompat.getStreamMaxVolume(audioManager, STREAM_TYPE); | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Robin
					Robin