TimelineQueueNavigator из exoplayer дает неверный индекс

#android #exoplayer

Вопрос:

Это мой навигатор очереди для моего музыкального соединителя

   private inner class MusicQueueNavigator : TimelineQueueNavigator(mediaSession){
        override fun getMediaDescription(player: Player, windowIndex: Int): MediaDescriptionCompat {
            Log.d(TAG, " window index $windowIndex")
          return firebaseMusicSource.songs[windowIndex].description
        }

    }
 

Журнал ошибок

 2021-04-07 15:10:26.466 3171-3171/com.example.spotifyclone D/mTag: mainViewmodel media ID 5
2021-04-07 15:10:26.470 3171-3171/com.example.spotifyclone D/mTag: onPrepareFromMediaId: ready
2021-04-07 15:10:26.470 3171-3171/com.example.spotifyclone D/mTag: onPrepareFromMediaId: 5
2021-04-07 15:10:26.470 3171-3171/com.example.spotifyclone D/mTag: music playback preparer: 5 
2021-04-07 15:10:26.479 3171-3171/com.example.spotifyclone D/mTag:  window index 5
2021-04-07 15:10:26.480 3171-3171/com.example.spotifyclone D/mTag:  window index 6
2021-04-07 15:10:26.480 3171-3171/com.example.spotifyclone D/AndroidRuntime: Shutting down VM
2021-04-07 15:10:26.482 3171-3171/com.example.spotifyclone E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.spotifyclone, PID: 3171
    java.lang.IndexOutOfBoundsException: Index: 6, Size: 6
        at java.util.ArrayList.get(ArrayList.java:437)
        at com.example.spotifyclone.exoplayer.MusicService$MusicQueueNavigator.getMediaDescription(MusicService.kt:138)
 

когда я пытаюсь воспроизвести песню, описанный выше метод вызывается несколько раз, и я не знаю, является ли это предполагаемым поведением или нет, но windowIndex превышает количество песен.

Завершите репо, если вы хотите просмотреть другие части кода или хотите запустить его самостоятельно. https://github.com/PembaTamang/SpotifyClone