Android Media3 (ExoPlayer):如何在时间轴中设置窗口的defaultPositionUs?

问题描述 投票:0回答:1

我想设置播放列表项目的默认开始位置(基本上是从用户离开的位置恢复),以便在播放列表项目自动转换到下一个项目时使用。

根据我的理解(我不确定),默认的开始位置是时间轴中的窗口。

来自文档:Timeline.Window.defaultPositionUs。 但是,我找不到设置这个

defaultPositionUs
参数的方法。

我使用这个函数来设置播放列表项目:setMediaItems。 我的播放列表项目是 mp3 文件(本地和 https 源)。

android-mediaplayer exoplayer android-media3 exoplayer-media-item
1个回答
0
投票

您可以使用覆盖方法

setMediaItems(mediaItems, startIndex, startPositionMs)
,其中:

  • mediaItems - 您的 MediaItems 列表
  • startIndex - 此列表的起始位置
  • startPositionMs - 开始的时间(以毫秒为单位)

这是我如何实现它的示例:

    fun playTrack(trackId: String, playlist: List<TrackUi>) {
            mediaController?.let { mediaController ->
                val mediaItems: List<MediaItem> = playlist.map { it.toMediaItem() }
                val startPosition = mediaItems.indexOfFirst { it.mediaId == trackId }
                mediaController.setMediaItems(mediaItems, startPosition, 0L)
                mediaController.prepare()
                mediaController.play()
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.