Сохраняем прогресс просмотра и возобновляем с позиции
This commit is contained in:
@@ -103,6 +103,7 @@ class HostConnection(
|
||||
itemId = snapshot.itemId,
|
||||
audioIndex = snapshot.audioIndex,
|
||||
sentTs = System.currentTimeMillis(),
|
||||
durationMs = snapshot.durationMs,
|
||||
),
|
||||
)
|
||||
}
|
||||
@@ -248,9 +249,9 @@ class HostConnection(
|
||||
fun sendPlaybackPositionNow() {
|
||||
if (transport == null) return
|
||||
scope.launch {
|
||||
val (positionMs, playing, itemId, audioIndex) =
|
||||
val (positionMs, playing, itemId, audioIndex, durationMs) =
|
||||
withContext(Dispatchers.Main) { movieController.playbackPosition() }
|
||||
sendToHost(PlaybackPosition(positionMs, playing, itemId, audioIndex, sentTs = System.currentTimeMillis()))
|
||||
sendToHost(PlaybackPosition(positionMs, playing, itemId, audioIndex, sentTs = System.currentTimeMillis(), durationMs = durationMs))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
/** Пауза при потере связи, если плеер играл. Только с главного потока. Возвращает, играл ли. */
|
||||
|
||||
Reference in New Issue
Block a user