@@ -58,12 +58,14 @@ import androidx.media3.common.util.BitmapLoader
5858import androidx.media3.common.util.UnstableApi
5959import androidx.media3.common.util.Util
6060import androidx.media3.common.util.Util.isBitmapFactorySupportedMimeType
61+ import androidx.media3.datasource.DefaultDataSource
6162import androidx.media3.exoplayer.DefaultRenderersFactory
6263import androidx.media3.exoplayer.ExoPlayer
6364import androidx.media3.exoplayer.analytics.AnalyticsListener
6465import androidx.media3.exoplayer.audio.AudioSink
6566import androidx.media3.exoplayer.source.MediaLoadData
6667import androidx.media3.exoplayer.util.EventLogger
68+ import androidx.media3.extractor.mp3.Mp3Extractor
6769import androidx.media3.session.CacheBitmapLoader
6870import androidx.media3.session.CommandButton
6971import androidx.media3.session.MediaController
@@ -104,6 +106,7 @@ import org.akanework.gramophone.logic.utils.MediaStoreUtils
104106import org.akanework.gramophone.logic.utils.NativeTrack
105107import org.akanework.gramophone.logic.utils.SemanticLyrics
106108import org.akanework.gramophone.logic.utils.exoplayer.EndedWorkaroundPlayer
109+ import org.akanework.gramophone.logic.utils.exoplayer.GramophoneExtractorsFactory
107110import org.akanework.gramophone.logic.utils.exoplayer.GramophoneMediaSourceFactory
108111import org.akanework.gramophone.logic.utils.exoplayer.GramophoneRenderFactory
109112import org.akanework.gramophone.ui.LyricWidgetProvider
@@ -331,16 +334,14 @@ class GramophonePlaybackService : MediaLibraryService(), MediaSessionService.Lis
331334 prefs.getBooleanStrict(" floatoutput" , false )
332335 )
333336 .setEnableDecoderFallback(true )
334- .setEnableAudioTrackPlaybackParams( // hardware/system-accelerated playback speed
335- prefs.getBooleanStrict(" ps_hardware_acc" , true )
336- )
337+ .setEnableAudioTrackPlaybackParams(true )
337338 .setExtensionRendererMode(DefaultRenderersFactory .EXTENSION_RENDERER_MODE_PREFER ),
338- GramophoneMediaSourceFactory (this )
339- /* .setMp3ExtractorFlags(Mp3Extractor.FLAG_ENABLE_INDEX_SEEKING))
340- TODO flag breaks playback of AcousticGuitar.mp3, report exo bug + add UI toggle*/
341- )
339+ GramophoneMediaSourceFactory (DefaultDataSource .Factory (this ), GramophoneExtractorsFactory ().also {
340+ it.setConstantBitrateSeekingEnabled(true )
341+ if (prefs.getBooleanStrict(" mp3_index_seeking" , false ))
342+ it.setMp3ExtractorFlags(Mp3Extractor .FLAG_ENABLE_INDEX_SEEKING )
343+ }))
342344 .setWakeMode(C .WAKE_MODE_LOCAL )
343- .setSkipSilenceEnabled(prefs.getBooleanStrict(" skip_silence" , false ))
344345 .setAudioAttributes(
345346 AudioAttributes
346347 .Builder ()
0 commit comments