这是indexloc提供的服务,不要输入任何密码
Skip to content

IndexOutOfBoundsException handleSetMediaItems #2335

@MrLhf

Description

@MrLhf

When I use handleSetMediaItems and handleSeek to reset the play list and the currently playing song, an IndexOutOfBoundsException occurs. I analyze that it is because when initializing the State, the previous currentIndex is used to check the current Playlist. Is there any way to avoid this problem? Below is my error stack.

java.lang.IndexOutOfBoundsException
at androidx.media3.common.util.Assertions.checkIndex(Assertions.java:71)
at androidx.media3.common.Timeline.getPeriodPositionUs(Timeline.java:1219)
at androidx.media3.common.Timeline.getPeriodPositionUs(Timeline.java:1192)
at androidx.media3.common.SimpleBasePlayer.getPeriodIndexFromWindowPosition(SimpleBasePlayer.java:3835)
at androidx.media3.common.SimpleBasePlayer.getCurrentPeriodIndexInternal(SimpleBasePlayer.java:3820)
at androidx.media3.common.SimpleBasePlayer.getPositionDiscontinuityReason(SimpleBasePlayer.java:3879)
at androidx.media3.common.SimpleBasePlayer.updateStateAndInformListeners(SimpleBasePlayer.java:3521)
at androidx.media3.common.SimpleBasePlayer.updateStateForPendingOperation(SimpleBasePlayer.java:3747)
at androidx.media3.common.SimpleBasePlayer.updateStateForPendingOperation(SimpleBasePlayer.java:3733)
at androidx.media3.common.SimpleBasePlayer.prepare(SimpleBasePlayer.java:2376)
at com.suding.music.service.WLMediaPlayer.handleSeek(WLMediaPlayer.kt:395)
at androidx.media3.common.SimpleBasePlayer.seekTo(SimpleBasePlayer.java:2471)
at androidx.media3.common.BasePlayer.seekTo(BasePlayer.java:259)
at androidx.media3.common.ForwardingPlayer.seekTo(ForwardingPlayer.java:322)
at androidx.media3.session.PlayerWrapper.seekTo(PlayerWrapper.java:273)
at androidx.media3.session.MediaSessionStub.lambda$seekToWithMediaItemIndex$23$androidx-media3-session-MediaSessionStub(MediaSessionStub.java:823)
at androidx.media3.session.MediaSessionStub$$ExternalSyntheticLambda14.run(D8$$SyntheticClass:0)
at androidx.media3.session.MediaSessionStub.lambda$sendSessionResultSuccess$1(MediaSessionStub.java:173)
at androidx.media3.session.MediaSessionStub$$ExternalSyntheticLambda84.run(D8$$SyntheticClass:0)
at androidx.media3.session.MediaSessionStub.lambda$queueSessionTaskWithPlayerCommandForControllerInfo$13(MediaSessionStub.java:343)
at androidx.media3.session.MediaSessionStub$$ExternalSyntheticLambda40.run(D8$$SyntheticClass:0)
at androidx.media3.session.ConnectedControllersManager.lambda$flushCommandQueue$3$androidx-media3-session-ConnectedControllersManager(ConnectedControllersManager.java:295)
at androidx.media3.session.ConnectedControllersManager$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at androidx.media3.session.MediaSessionImpl.lambda$callWithControllerForCurrentRequestSet$3$androidx-media3-session-MediaSessionImpl(MediaSessionImpl.java:356)
at androidx.media3.session.MediaSessionImpl$$ExternalSyntheticLambda21.run(D8$$SyntheticClass:0)
at androidx.media3.common.util.Util.postOrRun(Util.java:798)
at androidx.media3.session.ConnectedControllersManager.flushCommandQueue(ConnectedControllersManager.java:289)
at androidx.media3.session.ConnectedControllersManager.flushCommandQueue(ConnectedControllersManager.java:270)
at androidx.media3.session.MediaSessionStub.lambda$flushCommandQueue$64$androidx-media3-session-MediaSessionStub(MediaSessionStub.java:1691)
at androidx.media3.session.MediaSessionStub$$ExternalSyntheticLambda37.run(D8$$SyntheticClass:0)
at androidx.media3.common.util.Util.postOrRun(Util.java:798)
at androidx.media3.session.MediaSessionStub.flushCommandQueue(MediaSessionStub.java:1689)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler.flushCommandQueue(MediaControllerImplBase.java:3521)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler.handleMessage(MediaControllerImplBase.java:3514)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler.$r8$lambda$TVKiXTCmsW2hn-6HNXqbaigkfJc(Unknown Source:0)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler$$ExternalSyntheticLambda0.handleMessage(D8$$SyntheticClass:0)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
2025-04-13 14:05:22.232 17377-17377 AndroidRuntime com.suding.music E at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions