From 111546bc4c4a361adf85016c36d2297419cad946 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Tue, 21 Jun 2022 14:05:14 +0530 Subject: [PATCH] Fixed playback speed and pitch issues --- .../monkey/retromusic/auto/AutoMusicProvider.kt | 4 ++-- .../monkey/retromusic/service/LocalPlayback.kt | 14 ++++++++++---- .../name/monkey/retromusic/service/MultiPlayer.kt | 12 ++++++------ .../name/monkey/retromusic/service/MusicService.kt | 13 +++---------- .../monkey/retromusic/service/PlaybackManager.kt | 8 -------- 5 files changed, 21 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/auto/AutoMusicProvider.kt b/app/src/main/java/code/name/monkey/retromusic/auto/AutoMusicProvider.kt index 1b11510a0..b6e267ed2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/auto/AutoMusicProvider.kt +++ b/app/src/main/java/code/name/monkey/retromusic/auto/AutoMusicProvider.kt @@ -31,7 +31,7 @@ import java.lang.ref.WeakReference * Created by Beesham Sarendranauth (Beesham) */ class AutoMusicProvider( - val mContext: Context, + private val mContext: Context, private val songsRepository: SongRepository, private val albumsRepository: AlbumRepository, private val artistsRepository: ArtistRepository, @@ -138,7 +138,7 @@ class AutoMusicProvider( topPlayedRepository.notRecentlyPlayedTracks().take(8) } else -> { - emptyList() + emptyList() } } songs.forEach { song -> diff --git a/app/src/main/java/code/name/monkey/retromusic/service/LocalPlayback.kt b/app/src/main/java/code/name/monkey/retromusic/service/LocalPlayback.kt index fafbae0ec..c066da44a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/LocalPlayback.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/LocalPlayback.kt @@ -7,6 +7,7 @@ import android.content.IntentFilter import android.media.AudioAttributes import android.media.AudioManager import android.media.MediaPlayer +import android.media.PlaybackParams import androidx.annotation.CallSuper import androidx.core.content.getSystemService import androidx.core.net.toUri @@ -17,6 +18,8 @@ import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.showToast import code.name.monkey.retromusic.service.playback.Playback import code.name.monkey.retromusic.util.PreferenceUtil.isAudioFocusEnabled +import code.name.monkey.retromusic.util.PreferenceUtil.playbackPitch +import code.name.monkey.retromusic.util.PreferenceUtil.playbackSpeed abstract class LocalPlayback(val context: Context) : Playback, MediaPlayer.OnErrorListener, MediaPlayer.OnCompletionListener { @@ -121,11 +124,14 @@ abstract class LocalPlayback(val context: Context) : Playback, MediaPlayer.OnErr } else { player.setDataSource(path) } - player.setAudioAttributes(AudioAttributes.Builder() - .setUsage(AudioAttributes.USAGE_MEDIA) - .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) - .build() + player.setAudioAttributes( + AudioAttributes.Builder() + .setUsage(AudioAttributes.USAGE_MEDIA) + .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) + .build() ) + player.playbackParams = PlaybackParams().setSpeed(playbackSpeed).setPitch(playbackPitch) + player.setOnPreparedListener { player.setOnPreparedListener(null) completion(true) 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 8421b60f1..6ad5c6bbc 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 @@ -23,6 +23,7 @@ import code.name.monkey.retromusic.extensions.uri import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.service.playback.Playback.PlaybackCallbacks import code.name.monkey.retromusic.util.PreferenceUtil.isGapLessPlayback +import code.name.monkey.retromusic.util.logE /** * @author Andrew Neal, Karim Abou Zeid (kabouzeid) @@ -141,9 +142,7 @@ class MultiPlayer(context: Context) : LocalPlayback(context) { override fun release() { stop() mCurrentMediaPlayer.release() - if (mNextMediaPlayer != null) { - mNextMediaPlayer?.release() - } + mNextMediaPlayer?.release() } /** @@ -249,7 +248,7 @@ class MultiPlayer(context: Context) : LocalPlayback(context) { mCurrentMediaPlayer = MediaPlayer() mCurrentMediaPlayer.setWakeMode(context, PowerManager.PARTIAL_WAKE_LOCK) context.showToast(R.string.unplayable_file) - Log.e(TAG, what.toString() + extra) + logE(what.toString() + extra) return false } @@ -260,9 +259,9 @@ class MultiPlayer(context: Context) : LocalPlayback(context) { mCurrentMediaPlayer = mNextMediaPlayer!! isInitialized = true mNextMediaPlayer = null - if (callbacks != null) callbacks?.onTrackWentToNext() + callbacks?.onTrackWentToNext() } else { - if (callbacks != null) callbacks?.onTrackEnded() + callbacks?.onTrackEnded() } } @@ -270,6 +269,7 @@ class MultiPlayer(context: Context) : LocalPlayback(context) { override fun setPlaybackSpeedPitch(speed: Float, pitch: Float) { mCurrentMediaPlayer.setPlaybackSpeedPitch(speed, pitch) + mNextMediaPlayer?.setPlaybackSpeedPitch(speed, pitch) } companion object { diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt index 087f16dd9..26d1fe7a9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt @@ -591,16 +591,9 @@ class MusicService : MediaBrowserServiceCompat(), * By default return the browsable root. Treat the EXTRA_RECENT flag as a special case * and return the recent root instead. */ - var isRecentRequest = false - if (rootHints != null) { - isRecentRequest = - rootHints.getBoolean(BrowserRoot.EXTRA_RECENT) - } - val browserRootPath = if (isRecentRequest) { - AutoMediaIDHelper.RECENT_ROOT - } else { - AutoMediaIDHelper.MEDIA_ID_ROOT - } + val isRecentRequest = rootHints?.getBoolean(BrowserRoot.EXTRA_RECENT) ?: false + val browserRootPath = + if (isRecentRequest) AutoMediaIDHelper.RECENT_ROOT else AutoMediaIDHelper.MEDIA_ID_ROOT BrowserRoot(browserRootPath, null) } } 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 ed6335a99..9ea6107d7 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,8 +6,6 @@ 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 class PlaybackManager(val context: Context) { @@ -35,9 +33,6 @@ 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() } @@ -61,9 +56,6 @@ class PlaybackManager(val context: Context) { AudioFader.startFadeAnimator(playback!!, true) } } - if (shouldSetSpeed) { - playback?.setPlaybackSpeedPitch(playbackSpeed, playbackPitch) - } playback?.start() } }