Saltar al contenido principal

RF55: Usuario retrocede video

Descripción

Como usuario reproduciendo una lección, quiero retroceder el video (saltar hacia atrás) para repasar una parte que no entendí.

Análogo a RF54, es una interacción del reproductor (seek hacia atrás) sobre el stream autorizado (RF53); la posición se persiste para conservar el progreso.

CampoValor
MóduloCourses Module (cliente de reproducción + persistencia de progreso)
ActorUsuario autenticado
EndpointPATCH /courses/:id/lessons/:lessonId/progress ({ positionSeconds })
PrecondicionesLección en reproducción con acceso válido
PrioridadBaja (MVP)
EtapaMBI 1
Requisitos relacionadosRF53, RF54

Reglas de negocio

  • RN-55.1 — El seek atrás ocurre en el reproductor; la posición mínima es 0 (inicio de la lección).
  • RN-55.2 — El progreso se guarda con throttling.
  • RN-55.3 — Retroceder no reduce el porcentaje "máximo visto" registrado para fines de finalización (RF57).
  • RN-55.4 — Si la URL prefirmada expiró, se solicita una nueva (RF53) de forma transparente.

Validaciones de entrada

CampoReglasMensaje de error
positionSecondsNumérico ≥ 0 y ≤ duración."Posición de reproducción no válida."
AuthorizationBearer válido."Sesión no válida." (401)

Criterios de aceptación

Escenario 1: Retroceder exitoso

Dado que estoy reproduciendo una lección, Cuando retrocedo a una posición válida, Entonces el reproductor salta a esa posición, Y la posición actual se guarda sin reducir el máximo visto.

Escenario 2: Retroceder antes del inicio

Dado que intento retroceder antes del segundo 0, Cuando lo hago, Entonces la posición se limita al inicio (0).

Escenario 3: URL expirada durante la sesión

Dado que la URL prefirmada expiró, Cuando retrocedo y reanudo, Entonces el sistema solicita una nueva URL (RF53) y continúa.

Criterios no funcionales

  • Guardado con throttling; respuesta < 300 ms.
  • Comunicación TLS 1.2+.

Diagrama de secuencia