maxrave-dev / SimpMusic

A simple music app using YouTube Music for backend
https://simpmusic.tech/
GNU General Public License v3.0
1.38k stars 95 forks source link

Crash with Normalize Volume #310

Closed Typhonling closed 1 month ago

Typhonling commented 2 months ago

Describe the bug If Normalize Volume is enabled, app will crash when trying to play a song. To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Log (Error Details) Build version: 0.2.0-dev Current date: 2024-03-12 15:41:20 Device: OnePlus IN2020 OS version: Android 13 (SDK 33)

Stack trace:
java.lang.RuntimeException: Cannot initialize effect engine for type: fe3199be-aed0-413f-87bb-11260eb63cf1 Error: -3 at android.media.audiofx.AudioEffect.(AudioEffect.java:543) at android.media.audiofx.AudioEffect.(AudioEffect.java:501) at android.media.audiofx.AudioEffect.(AudioEffect.java:475) at android.media.audiofx.LoudnessEnhancer.(LoudnessEnhancer.java:80) at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.mayBeNormalizeVolume(SimpleMediaServiceHandler.kt:474) at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.onMediaItemTransition(SimpleMediaServiceHandler.kt:359) at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$14(ExoPlayerImpl.java:2075) at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda12.invoke(D8$$SyntheticClass:0) at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:339) at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:223) at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0) at androidx.media3.common.util.ListenerSet.flushEvents(ListenerSet.java:245) at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:2145) at androidx.media3.exoplayer.ExoPlayerImpl.removeMediaItems(ExoPlayerImpl.java:698) at androidx.media3.common.BasePlayer.clearMediaItems(BasePlayer.java:94) at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.clearMediaItems(SimpleMediaServiceHandler.kt:222) at com.maxrave.simpmusic.viewModel.SharedViewModel$loadMediaItemFromTrack$2.invokeSuspend(SharedViewModel.kt:755) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:363) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:26) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:21) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:88) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:123) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52) at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:43) at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1) at com.maxrave.simpmusic.viewModel.SharedViewModel.loadMediaItemFromTrack(SharedViewModel.kt:754) at com.maxrave.simpmusic.viewModel.SharedViewModel.loadMediaItemFromTrack$default(SharedViewModel.kt:752) at com.maxrave.simpmusic.ui.fragment.player.NowPlayingFragment.onViewCreated(NowPlayingFragment.kt:363) at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3147) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:588) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782) at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7924) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@5f99144, Dispatchers.Main.immediate]

User actions: 2024-03-12 15:33:49: MainActivity created 2024-03-12 15:33:50: MainActivity resumed 2024-03-12 15:34:40: MainActivity paused 2024-03-12 15:34:40: MainActivity destroyed 2024-03-12 15:34:40: MainActivity created 2024-03-12 15:34:41: MainActivity resumed 2024-03-12 15:35:43: MainActivity paused 2024-03-12 15:35:45: MainActivity resumed 2024-03-12 15:36:24: MainActivity paused 2024-03-12 15:36:24: MainActivity destroyed 2024-03-12 15:36:24: MainActivity created 2024-03-12 15:36:25: MainActivity resumed 2024-03-12 15:37:09: MainActivity paused 2024-03-12 15:37:09: MainActivity destroyed 2024-03-12 15:37:09: MainActivity created 2024-03-12 15:37:10: MainActivity resumed 2024-03-12 15:39:21: MainActivity paused 2024-03-12 15:41:11: MainActivity resumed

Typhonling commented 1 month ago

It's still going to crash.

Build version: 0.2.0-dev Current date: 2024-03-18 13:54:19 Device: OnePlus IN2020 OS version: Android 13 (SDK 33)

Stack trace:
java.lang.RuntimeException: Cannot initialize effect engine for type: fe3199be-aed0-413f-87bb-11260eb63cf1 Error: -3 at android.media.audiofx.AudioEffect.(AudioEffect.java:543) at android.media.audiofx.AudioEffect.(AudioEffect.java:501) at android.media.audiofx.AudioEffect.(AudioEffect.java:475) at android.media.audiofx.LoudnessEnhancer.(LoudnessEnhancer.java:80) at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.mayBeNormalizeVolume(SimpleMediaServiceHandler.kt:541) at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.onMediaItemTransition(SimpleMediaServiceHandler.kt:414) at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$14(ExoPlayerImpl.java:2075) at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda12.invoke(D8$$SyntheticClass:0) at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:339) at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:223) at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0) at androidx.media3.common.util.ListenerSet.flushEvents(ListenerSet.java:245) at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:2145) at androidx.media3.exoplayer.ExoPlayerImpl.removeMediaItems(ExoPlayerImpl.java:698) at androidx.media3.common.BasePlayer.clearMediaItems(BasePlayer.java:94) at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.clearMediaItems(SimpleMediaServiceHandler.kt:248) at com.maxrave.simpmusic.viewModel.SharedViewModel$loadMediaItemFromTrack$2.invokeSuspend(SharedViewModel.kt:849) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:363) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:26) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:21) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:88) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:123) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52) at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:43) at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1) at com.maxrave.simpmusic.viewModel.SharedViewModel.loadMediaItemFromTrack(SharedViewModel.kt:848) at com.maxrave.simpmusic.viewModel.SharedViewModel.loadMediaItemFromTrack$default(SharedViewModel.kt:842) at com.maxrave.simpmusic.ui.fragment.player.NowPlayingFragment.onViewCreated(NowPlayingFragment.kt:363) at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3147) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:588) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782) at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7924) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@5eb0eaa, Dispatchers.Main.immediate]

User actions: 2024-03-18 13:51:33: MainActivity created 2024-03-18 13:51:34: MainActivity resumed 2024-03-18 13:51:48: MainActivity paused 2024-03-18 13:53:35: MainActivity resumed

maxrave-dev commented 1 month ago

Try using ViMusic's volume normalization, did it ok?

Typhonling commented 1 month ago

Try using ViMusic's volume normalization, did it ok?

Yes, ViMusic crashes too. For reference, The system I'm using is Lineage OS 20, here are the relevant Magisk modules I'm using:

Ainur Narsil 18.05.2022 Audio Modification Library v5.1 ViPER4AndroidFX repackagedhoch87