From b9f0adc9c23888a027c49d5afee5c2eda56065df Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Sat, 21 May 2022 02:00:26 +0530 Subject: [PATCH] Correctly set playback speed and pitch --- .../name/monkey/retromusic/service/CrossFadePlayer.kt | 8 -------- .../code/name/monkey/retromusic/service/MultiPlayer.kt | 3 --- .../name/monkey/retromusic/service/PlaybackManager.kt | 8 ++++++++ 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt b/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt index 0949f4158..a3201d2c5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt @@ -19,8 +19,6 @@ import code.name.monkey.retromusic.service.AudioFader.Companion.createFadeAnimat import code.name.monkey.retromusic.service.playback.Playback import code.name.monkey.retromusic.service.playback.Playback.PlaybackCallbacks import code.name.monkey.retromusic.util.PreferenceUtil -import code.name.monkey.retromusic.util.PreferenceUtil.playbackPitch -import code.name.monkey.retromusic.util.PreferenceUtil.playbackSpeed import kotlinx.coroutines.* /** @author Prathamesh M */ @@ -168,7 +166,6 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion player.setAudioAttributes( AudioAttributes.Builder().setLegacyStreamType(AudioManager.STREAM_MUSIC).build() ) - player.setPlaybackSpeedPitch(playbackSpeed, playbackPitch) player.setOnPreparedListener { player.setOnPreparedListener(null) completion(true) @@ -321,7 +318,6 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion } } - fun onDurationUpdated(progress: Int, total: Int) { if (total > 0 && (total - progress).div(1000) == crossFadeDuration) { getNextPlayer()?.let { player -> @@ -369,10 +365,6 @@ internal fun crossFadeScope(): CoroutineScope = CoroutineScope(Job() + Dispatche fun MediaPlayer.setPlaybackSpeedPitch(speed: Float, pitch: Float) { if (hasMarshmallow()) { - val wasPlaying: Boolean = isPlaying playbackParams = PlaybackParams().setSpeed(speed).setPitch(pitch) - if (!wasPlaying) { - if (isPlaying) pause() - } } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt index 76b26edd1..bd14fb778 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt @@ -27,8 +27,6 @@ import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.service.playback.Playback import code.name.monkey.retromusic.service.playback.Playback.PlaybackCallbacks import code.name.monkey.retromusic.util.PreferenceUtil.isGapLessPlayback -import code.name.monkey.retromusic.util.PreferenceUtil.playbackPitch -import code.name.monkey.retromusic.util.PreferenceUtil.playbackSpeed /** * @author Andrew Neal, Karim Abou Zeid (kabouzeid) @@ -91,7 +89,6 @@ class MultiPlayer internal constructor(private val context: Context) : Playback, .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build() ) - player.setPlaybackSpeedPitch(playbackSpeed, playbackPitch) player.setOnPreparedListener { player.setOnPreparedListener(null) completion(true) diff --git a/app/src/main/java/code/name/monkey/retromusic/service/PlaybackManager.kt b/app/src/main/java/code/name/monkey/retromusic/service/PlaybackManager.kt index 8abc43328..512910831 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/PlaybackManager.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/PlaybackManager.kt @@ -6,6 +6,8 @@ import android.media.audiofx.AudioEffect import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.service.playback.Playback import code.name.monkey.retromusic.util.PreferenceUtil +import code.name.monkey.retromusic.util.PreferenceUtil.playbackPitch +import code.name.monkey.retromusic.util.PreferenceUtil.playbackSpeed import com.google.android.gms.cast.framework.CastSession @@ -32,6 +34,9 @@ class PlaybackManager(val context: Context) { val isPlaying: Boolean get() = playback != null && playback!!.isPlaying + private val shouldSetSpeed: Boolean + get() = !(playbackSpeed == 1f && playbackPitch == 1f) + init { playback = createLocalPlayback() } @@ -52,6 +57,9 @@ class PlaybackManager(val context: Context) { onPlay() } } + if (shouldSetSpeed) { + playback?.setPlaybackSpeedPitch(playbackSpeed, playbackPitch) + } playback?.start() } }