Сохраняем прогресс просмотра и возобновляем с позиции

This commit is contained in:
2026-09-02 20:55:00 +03:00
parent 1b28760c6e
commit f656f43e10
9 changed files with 91 additions and 19 deletions
@@ -70,6 +70,8 @@ internal data class PlaybackSnapshot(
val playing: Boolean,
val itemId: String?,
val audioIndex: Int,
/** Длительность видео, мс; -1 = неизвестно (плеера нет / ещё не prepared). */
val durationMs: Long = -1L,
)
/**
@@ -239,10 +241,10 @@ class MovieController(private val context: Context) {
}
}
/** Снимок для PlaybackPosition (позиция, playing, itemId, audioIndex). Только с главного потока. */
/** Снимок для PlaybackPosition (позиция, playing, itemId, audioIndex, длительность). Только с главного потока. */
internal fun playbackPosition(): PlaybackSnapshot {
val player = _player ?: return PlaybackSnapshot(0L, false, contentId.itemId, contentId.audioIndex)
return PlaybackSnapshot(player.currentPosition, player.playWhenReady, contentId.itemId, contentId.audioIndex)
return PlaybackSnapshot(player.currentPosition, player.playWhenReady, contentId.itemId, contentId.audioIndex, player.duration)
}
/** Пауза при потере связи, если плеер играл. Только с главного потока. Возвращает, играл ли. */