When I try to play an Audio with Chapters, it throws an error. Same error in the latest demo app & our integration:
java.lang.IllegalArgumentException: Required value was null.
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.toChapter(ChapterAdapter.kt:19)
URN that fails: urn:rtr:audio:cc8ea45c-3ee1-4849-a216-adc1ee390960
Relevant stack trace or log output
error while preparing source
java.lang.IllegalArgumentException: Required value was null.
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.toChapter(ChapterAdapter.kt:19)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters$lambda$3(ChapterAdapter.kt:48)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.$r8$lambda$aYG-kO3zgs4egjgobf1NIev5hsI(Unknown Source:0)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:791)
at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:830)
at kotlin.sequences.SequencesKt___SequencesKt$sortedWith$1.iterator(_Sequences.kt:642)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:812)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters(ChapterAdapter.kt:51)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader.loadAsset(SRGAssetLoader.kt:171)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader$loadAsset$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.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
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 ch.srgssr.pillarbox.player.source.PillarboxMediaSource.prepareSourceInternal(PillarboxMediaSource.kt:43)
at androidx.media3.exoplayer.source.BaseMediaSource.prepareSource(BaseMediaSource.java:249)
at androidx.media3.exoplayer.source.CompositeMediaSource.prepareChildSource(CompositeMediaSource.java:122)
at androidx.media3.exoplayer.source.WrappingMediaSource.prepareChildSource(WrappingMediaSource.java:240)
at androidx.media3.exoplayer.source.MaskingMediaSource.createPeriod(MaskingMediaSource.java:127)
at androidx.media3.exoplayer.MediaSourceList.createPeriod(MediaSourceList.java:338)
at androidx.media3.exoplayer.MediaPeriodHolder.createMediaPeriod(MediaPeriodHolder.java:451)
at androidx.media3.exoplayer.MediaPeriodHolder.<init>(MediaPeriodHolder.java:116)
at androidx.media3.exoplayer.ExoPlayerImplInternal.createMediaPeriodHolder(ExoPlayerImplInternal.java:325)
at androidx.media3.exoplayer.ExoPlayerImplInternal.$r8$lambda$4ByVomVrDZGMrfXELlhTrFd0naQ(Unknown Source:0)
at androidx.media3.exoplayer.ExoPlayerImplInternal$$ExternalSyntheticLambda2.create(D8$$SyntheticClass:0)
at androidx.media3.exoplayer.MediaPeriodQueue.enqueueNextMediaPeriodHolder(MediaPeriodQueue.java:184)
at androidx.media3.exoplayer.ExoPlayerImplInternal.maybeUpdateLoadingPeriod(ExoPlayerImplInternal.java:2149)
at androidx.media3.exoplayer.ExoPlayerImplInternal.updatePeriods(ExoPlayerImplInternal.java:2137)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1079)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.os.HandlerThread.run(HandlerThread.java:68)
2024-06-05 16:36:22.477 24202-24416 ExoPlayerImplInternal ch.srgssr.pillarbox.demo.debug E Playback error
androidx.media3.exoplayer.ExoPlaybackException: Unexpected runtime error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:701)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.os.HandlerThread.run(HandlerThread.java:68)
Caused by: java.lang.IllegalArgumentException: Required value was null.
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.toChapter(ChapterAdapter.kt:19)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters$lambda$3(ChapterAdapter.kt:48)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.$r8$lambda$aYG-kO3zgs4egjgobf1NIev5hsI(Unknown Source:0)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:791)
at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:830)
at kotlin.sequences.SequencesKt___SequencesKt$sortedWith$1.iterator(_Sequences.kt:642)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:812)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters(ChapterAdapter.kt:51)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader.loadAsset(SRGAssetLoader.kt:171)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader$loadAsset$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.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
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 ch.srgssr.pillarbox.player.source.PillarboxMediaSource.prepareSourceInternal(PillarboxMediaSource.kt:43)
at androidx.media3.exoplayer.source.BaseMediaSource.prepareSource(BaseMediaSource.java:249)
at androidx.media3.exoplayer.source.CompositeMediaSource.prepareChildSource(CompositeMediaSource.java:122)
at androidx.media3.exoplayer.source.WrappingMediaSource.prepareChildSource(WrappingMediaSource.java:240)
at androidx.media3.exoplayer.source.MaskingMediaSource.createPeriod(MaskingMediaSource.java:127)
at androidx.media3.exoplayer.MediaSourceList.createPeriod(MediaSourceList.java:338)
at androidx.media3.exoplayer.MediaPeriodHolder.createMediaPeriod(MediaPeriodHolder.java:451)
at androidx.media3.exoplayer.MediaPeriodHolder.<init>(MediaPeriodHolder.java:116)
at androidx.media3.exoplayer.ExoPlayerImplInternal.createMediaPeriodHolder(ExoPlayerImplInternal.java:325)
at androidx.media3.exoplayer.ExoPlayerImplInternal.$r8$lambda$4ByVomVrDZGMrfXELlhTrFd0naQ(Unknown Source:0)
at androidx.media3.exoplayer.ExoPlayerImplInternal$$ExternalSyntheticLambda2.create(D8$$SyntheticClass:0)
at androidx.media3.exoplayer.MediaPeriodQueue.enqueueNextMediaPeriodHolder(MediaPeriodQueue.java:184)
at androidx.media3.exoplayer.ExoPlayerImplInternal.maybeUpdateLoadingPeriod(ExoPlayerImplInternal.java:2149)
at androidx.media3.exoplayer.ExoPlayerImplInternal.updatePeriods(ExoPlayerImplInternal.java:2137)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1079)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.os.HandlerThread.run(HandlerThread.java:68)
2024-06-05 16:36:22.478 24202-24416 PillarboxMediaSource ch.srgssr.pillarbox.demo.debug D releaseSourceInternal
2024-06-05 16:36:22.529 24202-24202 Compatibil...geReporter ch.srgssr.pillarbox.demo.debug D Compat change id reported: 160794467; UID 10597; state: ENABLED
2024-06-05 16:36:22.599 24202-24202 PillarboxDemo ch.srgssr.pillarbox.demo.debug D onPlayerErrorChanged androidx.media3.exoplayer.ExoPlaybackException: Unexpected runtime error
2024-06-05 16:36:22.605 24202-24202 EventLogger ch.srgssr.pillarbox.demo.debug E playerFailed [eventTime=0.39, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_FAILED_RUNTIME_CHECK
androidx.media3.exoplayer.ExoPlaybackException: Unexpected runtime error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:701)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.os.HandlerThread.run(HandlerThread.java:68)
Caused by: java.lang.IllegalArgumentException: Required value was null.
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.toChapter(ChapterAdapter.kt:19)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters$lambda$3(ChapterAdapter.kt:48)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.$r8$lambda$aYG-kO3zgs4egjgobf1NIev5hsI(Unknown Source:0)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:791)
at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:830)
at kotlin.sequences.SequencesKt___SequencesKt$sortedWith$1.iterator(_Sequences.kt:642)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:812)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters(ChapterAdapter.kt:51)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader.loadAsset(SRGAssetLoader.kt:171)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader$loadAsset$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.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
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 ch.srgssr.pillarbox.player.source.PillarboxMediaSource.prepareSourceInternal(PillarboxMediaSource.kt:43)
at androidx.media3.exoplayer.source.BaseMediaSource.prepareSource(BaseMediaSource.java:249)
at androidx.media3.exoplayer.source.CompositeMediaSource.prepareChildSource(CompositeMediaSource.java:122)
at androidx.media3.exoplayer.source.WrappingMediaSource.prepareChildSource(WrappingMediaSource.java:240)
at androidx.media3.exoplayer.source.MaskingMediaSource.createPeriod(MaskingMediaSource.java:127)
at androidx.media3.exoplayer.MediaSourceList.createPeriod(MediaSourceList.java:338)
at androidx.media3.exoplayer.MediaPeriodHolder.createMediaPeriod(MediaPeriodHolder.java:451)
at androidx.media3.exoplayer.MediaPeriodHolder.<init>(MediaPeriodHolder.java:116)
at androidx.media3.exoplayer.ExoPlayerImplInternal.createMediaPeriodHolder(ExoPlayerImplInternal.java:325)
at androidx.media3.exoplayer.ExoPlayerImplInternal.$r8$lambda$4ByVomVrDZGMrfXELlhTrFd0naQ(Unknown Source:0)
at androidx.media3.exoplayer.ExoPlayerImplInternal$$ExternalSyntheticLambda2.create(D8$$SyntheticClass:0)
at androidx.media3.exoplayer.MediaPeriodQueue.enqueueNextMediaPeriodHolder(MediaPeriodQueue.java:184)
at androidx.media3.exoplayer.ExoPlayerImplInternal.maybeUpdateLoadingPeriod(ExoPlayerImplInternal.java:2149)
at androidx.media3.exoplayer.ExoPlayerImplInternal.updatePeriods(ExoPlayerImplInternal.java:2137)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1079)
2024-06-05 16:36:22.605 24202-24202 EventLogger ch.srgssr.pillarbox.demo.debug E at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
... 4 more
]
2024-06-05 16:36:22.606 24202-24202 PillarboxDemo ch.srgssr.pillarbox.demo.debug E onPlayerError
androidx.media3.exoplayer.ExoPlaybackException: Unexpected runtime error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:701)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.os.HandlerThread.run(HandlerThread.java:68)
Caused by: java.lang.IllegalArgumentException: Required value was null.
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.toChapter(ChapterAdapter.kt:19)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters$lambda$3(ChapterAdapter.kt:48)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.$r8$lambda$aYG-kO3zgs4egjgobf1NIev5hsI(Unknown Source:0)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:791)
at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:830)
at kotlin.sequences.SequencesKt___SequencesKt$sortedWith$1.iterator(_Sequences.kt:642)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:812)
at ch.srgssr.pillarbox.core.business.source.ChapterAdapter.getChapters(ChapterAdapter.kt:51)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader.loadAsset(SRGAssetLoader.kt:171)
at ch.srgssr.pillarbox.core.business.source.SRGAssetLoader$loadAsset$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.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
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 ch.srgssr.pillarbox.player.source.PillarboxMediaSource.prepareSourceInternal(PillarboxMediaSource.kt:43)
at androidx.media3.exoplayer.source.BaseMediaSource.prepareSource(BaseMediaSource.java:249)
at androidx.media3.exoplayer.source.CompositeMediaSource.prepareChildSource(CompositeMediaSource.java:122)
at androidx.media3.exoplayer.source.WrappingMediaSource.prepareChildSource(WrappingMediaSource.java:240)
at androidx.media3.exoplayer.source.MaskingMediaSource.createPeriod(MaskingMediaSource.java:127)
at androidx.media3.exoplayer.MediaSourceList.createPeriod(MediaSourceList.java:338)
at androidx.media3.exoplayer.MediaPeriodHolder.createMediaPeriod(MediaPeriodHolder.java:451)
at androidx.media3.exoplayer.MediaPeriodHolder.<init>(MediaPeriodHolder.java:116)
at androidx.media3.exoplayer.ExoPlayerImplInternal.createMediaPeriodHolder(ExoPlayerImplInternal.java:325)
at androidx.media3.exoplayer.ExoPlayerImplInternal.$r8$lambda$4ByVomVrDZGMrfXELlhTrFd0naQ(Unknown Source:0)
at androidx.media3.exoplayer.ExoPlayerImplInternal$$ExternalSyntheticLambda2.create(D8$$SyntheticClass:0)
at androidx.media3.exoplayer.MediaPeriodQueue.enqueueNextMediaPeriodHolder(MediaPeriodQueue.java:184)
at androidx.media3.exoplayer.ExoPlayerImplInternal.maybeUpdateLoadingPeriod(ExoPlayerImplInternal.java:2149)
at androidx.media3.exoplayer.ExoPlayerImplInternal.updatePeriods(ExoPlayerImplInternal.java:2137)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1079)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.os.HandlerThread.run(HandlerThread.java:68)
Description of the problem
When I try to play an Audio with Chapters, it throws an error. Same error in the latest demo app & our integration:
URN that fails: urn:rtr:audio:cc8ea45c-3ee1-4849-a216-adc1ee390960
Relevant stack trace or log output
Reproducibility
Always
Steps to reproduce
Library version
2.0.0
Operating system
Android 14
Code sample
No response
Is there an existing issue for this?