You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Can't play large playlists :(
Basically same as #355, but now I have a new phone that isn't the worst android from 2019
To Reproduce
Steps to reproduce the behavior:
Sign in to google (optional)
Get a large playlist (2k+) (also takes a long ass time to load)
Select a song for playback
Crash and See error
Expected behavior
playlist starts playing
Screenshots
Log (Error Details)
Build version: 0.2.1
Current date: 2024-06-04 14:34:50
Device: Xiaomi 23127PN0CG
OS version: Android 14 (SDK 34)
Stack trace:
java.lang.OutOfMemoryError: Failed to allocate a 40 byte allocation with 2505216 free bytes and 2446KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at android.media.MediaDescription$Builder.build(MediaDescription.java:400)
at android.support.v4.media.MediaDescriptionCompat$Api21Impl.build(MediaDescriptionCompat.java:624)
at android.support.v4.media.MediaDescriptionCompat.getMediaDescription(MediaDescriptionCompat.java:367)
at android.support.v4.media.session.MediaSessionCompat$QueueItem.getQueueItem(MediaSessionCompat.java:2218)
at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setQueue(MediaSessionCompat.java:4123)
at android.support.v4.media.session.MediaSessionCompat.setQueue(MediaSessionCompat.java:828)
at androidx.media3.session.MediaSessionLegacyStub.setQueue(MediaSessionLegacyStub.java:925)
at androidx.media3.session.MediaSessionLegacyStub.access$500(MediaSessionLegacyStub.java:110)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.handleBitmapFuturesAllCompletedAndSetQueue(MediaSessionLegacyStub.java:1222)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.lambda$updateQueue$0$androidx-media3-session-MediaSessionLegacyStub$ControllerLegacyCbForBroadcast(MediaSessionLegacyStub.java:1170)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.updateQueue(MediaSessionLegacyStub.java:1179)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.onTimelineChanged(MediaSessionLegacyStub.java:1153)
at androidx.media3.session.MediaSessionImpl$PlayerListener.lambda$onTimelineChanged$11(MediaSessionImpl.java:1482)
at androidx.media3.session.MediaSessionImpl$PlayerListener$$ExternalSyntheticLambda7.run(D8$$SyntheticClass:0)
at androidx.media3.session.MediaSessionImpl.dispatchRemoteControllerTaskToLegacyStub(MediaSessionImpl.java:917)
at androidx.media3.session.MediaSessionImpl.access$400(MediaSessionImpl.java:101)
at androidx.media3.session.MediaSessionImpl$PlayerListener.onTimelineChanged(MediaSessionImpl.java:1481)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged(ForwardingPlayer.java:953)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$12(ExoPlayerImpl.java:2056)
at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda5.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.addMediaSources(ExoPlayerImpl.java:674)
at androidx.media3.exoplayer.ExoPlayerImpl.addMediaItems(ExoPlayerImpl.java:641)
at androidx.media3.common.BasePlayer.addMediaItems(BasePlayer.java:71)
at androidx.media3.common.BasePlayer.addMediaItem(BasePlayer.java:66)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.addMediaItemNotSet(SimpleMediaServiceHandler.kt:227)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.updateCatalog(SimpleMediaServiceHandler.kt:1062)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.load(SimpleMediaServiceHandler.kt:805)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.load$default(SimpleMediaServiceHandler.kt:801)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler$loadPlaylistOrAlbum$1.invokeSuspend(SimpleMediaServiceHandler.kt:1103)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:65)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:257)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
at com.maxrave.simpmusic.ui.widget.BasicWidget.performUpdate(BasicWidget.kt:68)
at com.maxrave.simpmusic.viewModel.SharedViewModel$init$2$job2$1$1.invokeSuspend(SharedViewModel.kt:311)
at com.maxrave.simpmusic.viewModel.SharedViewModel$init$2$job2$1$1.invoke(Unknown Source:8)
at com.maxrave.simpmusic.viewModel.SharedViewModel$init$2$job2$1$1.invoke(Unknown Source:4)
at kotlinx.coroutines.flow.FlowKt__MergeKt$mapLatest$1.invokeSuspend(Merge.kt:213)
at kotlinx.coroutines.flow.FlowKt__MergeKt$mapLatest$1.invoke(Unknown Source:13)
at kotlinx.coroutines.flow.FlowKt__MergeKt$mapLatest$1.invoke(Unknown Source:4)
at kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1$2.invokeSuspend(Merge.kt:30)
at kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1$2.invoke(Unknown Source:8)
at kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1$2.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:27)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:90)
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 kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1.emit(Merge.kt:29)
at kotlinx.coroutines.flow.StateFlowImpl.collect(StateFlow.kt:392)
at kotlinx.coroutines.flow.StateFlowImpl$collect$1.invokeSuspend(Unknown Source:15)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:65)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:371)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith$default(DispatchedContinuation.kt:274)
at kotlinx.coroutines.DispatchedCoroutine.afterResume(Builders.common.kt:257)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:224)
at android.os.Looper.loop(Looper.java:318)
at android.app.ActivityThread.main(ActivityThread.java:8677)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@43c8600, Dispatchers.Main.immediate]
User actions:
2024-06-04 14:32:16: MainActivity created
2024-06-04 14:32:16: MainActivity resumed
The text was updated successfully, but these errors were encountered:
Describe the bug
Can't play large playlists :(
Basically same as #355, but now I have a new phone that isn't the worst android from 2019
To Reproduce
Steps to reproduce the behavior:
Expected behavior
playlist starts playing
Screenshots
![Screenshot_2024-06-04-14-47-40-249_com maxrave simpmusic](https://private-user-images.githubusercontent.com/147027531/336455031-a1cf2906-f5aa-483c-83ae-95ea805af91f.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODQ0NDksIm5iZiI6MTcyMjI4NDE0OSwicGF0aCI6Ii8xNDcwMjc1MzEvMzM2NDU1MDMxLWExY2YyOTA2LWY1YWEtNDgzYy04M2FlLTk1ZWE4MDVhZjkxZi5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyOVQyMDE1NDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jZjBjYmRmMTRhMjJmZGRmODdmMTRkM2E4NzUyMWUwZDdlZTc2NTgyYTU1MTQ5NTQ0Yjc0Yzc0MzM0NDc0OGI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.PkOawsVc_5qGIfbMuRHkNN6UsF0_Ub0PUg_p-qu_Zj8)
Log (Error Details)
Build version: 0.2.1
Current date: 2024-06-04 14:34:50
Device: Xiaomi 23127PN0CG
OS version: Android 14 (SDK 34)
Stack trace:
java.lang.OutOfMemoryError: Failed to allocate a 40 byte allocation with 2505216 free bytes and 2446KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at android.media.MediaDescription$Builder.build(MediaDescription.java:400)
at android.support.v4.media.MediaDescriptionCompat$Api21Impl.build(MediaDescriptionCompat.java:624)
at android.support.v4.media.MediaDescriptionCompat.getMediaDescription(MediaDescriptionCompat.java:367)
at android.support.v4.media.session.MediaSessionCompat$QueueItem.getQueueItem(MediaSessionCompat.java:2218)
at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setQueue(MediaSessionCompat.java:4123)
at android.support.v4.media.session.MediaSessionCompat.setQueue(MediaSessionCompat.java:828)
at androidx.media3.session.MediaSessionLegacyStub.setQueue(MediaSessionLegacyStub.java:925)
at androidx.media3.session.MediaSessionLegacyStub.access$500(MediaSessionLegacyStub.java:110)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.handleBitmapFuturesAllCompletedAndSetQueue(MediaSessionLegacyStub.java:1222)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.lambda$updateQueue$0$androidx-media3-session-MediaSessionLegacyStub$ControllerLegacyCbForBroadcast(MediaSessionLegacyStub.java:1170)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.updateQueue(MediaSessionLegacyStub.java:1179)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.onTimelineChanged(MediaSessionLegacyStub.java:1153)
at androidx.media3.session.MediaSessionImpl$PlayerListener.lambda$onTimelineChanged$11(MediaSessionImpl.java:1482)
at androidx.media3.session.MediaSessionImpl$PlayerListener$$ExternalSyntheticLambda7.run(D8$$SyntheticClass:0)
at androidx.media3.session.MediaSessionImpl.dispatchRemoteControllerTaskToLegacyStub(MediaSessionImpl.java:917)
at androidx.media3.session.MediaSessionImpl.access$400(MediaSessionImpl.java:101)
at androidx.media3.session.MediaSessionImpl$PlayerListener.onTimelineChanged(MediaSessionImpl.java:1481)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged(ForwardingPlayer.java:953)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$12(ExoPlayerImpl.java:2056)
at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda5.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.addMediaSources(ExoPlayerImpl.java:674)
at androidx.media3.exoplayer.ExoPlayerImpl.addMediaItems(ExoPlayerImpl.java:641)
at androidx.media3.common.BasePlayer.addMediaItems(BasePlayer.java:71)
at androidx.media3.common.BasePlayer.addMediaItem(BasePlayer.java:66)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.addMediaItemNotSet(SimpleMediaServiceHandler.kt:227)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.updateCatalog(SimpleMediaServiceHandler.kt:1062)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.load(SimpleMediaServiceHandler.kt:805)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler.load$default(SimpleMediaServiceHandler.kt:801)
at com.maxrave.simpmusic.service.SimpleMediaServiceHandler$loadPlaylistOrAlbum$1.invokeSuspend(SimpleMediaServiceHandler.kt:1103)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:65)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:257)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
at com.maxrave.simpmusic.ui.widget.BasicWidget.performUpdate(BasicWidget.kt:68)
at com.maxrave.simpmusic.viewModel.SharedViewModel$init$2$job2$1$1.invokeSuspend(SharedViewModel.kt:311)
at com.maxrave.simpmusic.viewModel.SharedViewModel$init$2$job2$1$1.invoke(Unknown Source:8)
at com.maxrave.simpmusic.viewModel.SharedViewModel$init$2$job2$1$1.invoke(Unknown Source:4)
at kotlinx.coroutines.flow.FlowKt__MergeKt$mapLatest$1.invokeSuspend(Merge.kt:213)
at kotlinx.coroutines.flow.FlowKt__MergeKt$mapLatest$1.invoke(Unknown Source:13)
at kotlinx.coroutines.flow.FlowKt__MergeKt$mapLatest$1.invoke(Unknown Source:4)
at kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1$2.invokeSuspend(Merge.kt:30)
at kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1$2.invoke(Unknown Source:8)
at kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1$2.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:27)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:90)
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 kotlinx.coroutines.flow.internal.ChannelFlowTransformLatest$flowCollect$3$1.emit(Merge.kt:29)
at kotlinx.coroutines.flow.StateFlowImpl.collect(StateFlow.kt:392)
at kotlinx.coroutines.flow.StateFlowImpl$collect$1.invokeSuspend(Unknown Source:15)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:65)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:371)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith$default(DispatchedContinuation.kt:274)
at kotlinx.coroutines.DispatchedCoroutine.afterResume(Builders.common.kt:257)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:224)
at android.os.Looper.loop(Looper.java:318)
at android.app.ActivityThread.main(ActivityThread.java:8677)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@43c8600, Dispatchers.Main.immediate]
User actions:
2024-06-04 14:32:16: MainActivity created
2024-06-04 14:32:16: MainActivity resumed
The text was updated successfully, but these errors were encountered: