我有一个视频分为多个部分(每个部分的持续时间约为 5 分钟)。当我使用 addMediaItems() 在 Exoplayer 中播放这些部分时,所有部分都播放得很好,但每次播放视频部分时,seekbar 都会从 0 开始初始化,每次显示的视频总持续时间是当前视频部分的持续时间正在玩。
我想获取播放列表中添加的所有视频部分的总时间,并显示总播放列表的单个搜索栏。
如果我想为一个部分显示多个搜索栏并将它们水平组合。这可能吗?
您可以使用单个滑块来控制所有视频的时长。这是一个简单的方法:
获取当前播放列表中的视频总数:
player.mediaItemCount
(示例:返回 10)。
由于每个视频都是 5 分钟,所以总时间 = 50 分钟 = 30,00,000 毫秒
// Language : kotlin , Framework : Jetpack Compose
var totalDuration = 3000000L
var currentVideo = 0
var input = player.duration
Slider(
value = input/ videoDuration,
onValueChange = { },
enabled = true,
valueRange = 0f..1f
)
在
onValueChange = {}
内进行此计算:
val toSeek : Double = it*videoDuration / 3,00,000
currentVideo = toSeek
if(currentVideo == toSeek.toInt) {
player.seekTo((toSeek-currentVideo)*1,00,000))
}else{
player.seekTo(currentVideo,(toSeek-currentVideo)*1,00,000)
}
将硬编码值转换为参数化变量。
您可以通过将
Long
值转换为 Int
来提高性能,欢迎您使用 Stack OverFlow ,如果您发现此 Soution 有帮助,您可以通过单击左侧的 Tick Mark
将其标记为答案。
还有其他问题请评论。