Reading about ergonomics is valuable — watching it is even more effective. ErgoKawsay’s Videos module (Aprendizaje / Alli Kawsay Yachachiy Rimaykuna) provides short, focused educational videos that demonstrate the correct posture techniques and physical practices described elsewhere in the app. Each video is bundled directly inside the application — no links to YouTube, no streaming, no internet required. The module presents each video as a large cinema-style card designed to invite engagement: a bold color theme, a centered play button, and the video title and description overlaid at the bottom. Tapping anywhere on the card launches the in-app video player.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Cristiang1021/ErgoKawsay/llms.txt
Use this file to discover all available pages before exploring further.
Available Videos
| ID | Title (ES) | Title (Kichwa) | Asset |
|---|---|---|---|
ergo_posture | Ergonomía para docentes: postura correcta | Yachachikpak allillamkayachay: Alli shayana, tiyarinapash. | assets/videos/Ergonomia_Postura_correcta.mp4 |
yoga_10 | Yoga de 7 minutos: relajación docente | Ukku, huma, samay tantachiyta (yoga) yachachik 7 chinikupi alli kana. | assets/videos/5_MINUTOS_DE_YOGA.mp4 |
| Video | Category badge | Background color | Icon |
|---|---|---|---|
ergo_posture | CUERPO | blockLilac | Icons.airline_seat_recline_extra_rounded |
yoga_10 | BIENESTAR | blockMint | Icons.self_improvement_rounded |
Video Player
Package:video_player ^2.9.2
Tapping a video card launches VideoPlayerScreen, a dedicated full-featured player built on top of the video_player package. The player supports both portrait and landscape/fullscreen modes.
Portrait Mode
The video renders in its native aspect ratio, clipped with rounded corners inside a padded frame. Below the video:- A seek slider with current position and total duration labels
- A fullscreen button (
Icons.fullscreen_rounded) to enter landscape mode
Fullscreen (Landscape) Mode
Tapping the fullscreen button:- Rotates the device to landscape (
landscapeLeft+landscapeRight) - Enters
SystemUiMode.immersive(hides status and navigation bars) - Renders the video edge-to-edge with a semi-transparent control overlay
Playlist Navigation
When multiple videos are available, prev/next buttons appear below the video in portrait mode, along with a counter chip (e.g.,1 / 2). Videos are navigated in the order defined by LocalDataRepository.instance.videos.
Error Handling
If a video asset fails to load or initialize, the player area is replaced by an error card showing the video title and a localized message (“No se pudo cargar el video” / “Videoqa manaraq chaninchasqachu”).All videos are bundled as Flutter asset files and played directly from local storage. There is no streaming — playback works fully offline with no network connection required.
Asset Declaration
All video files must be declared inpubspec.yaml:
VideoPlayerController is initialized with VideoPlayerController.asset(path) when assetPath is set on the VideoItem. If a url is provided instead, VideoPlayerController.networkUrl(Uri.parse(url)) is used.
Adding New Videos
Declare it in pubspec.yaml
Add the path to the
assets: list under flutter: in pubspec.yaml, then run flutter pub get.Add a VideoItem entry
Open
lib/data/local/local_data_repository.dart and add a new VideoItem to the videos getter:VideoItem Model
Videos are immutable value objects defined inlib/data/models/video_item.dart.
Technical Reference
| Property | Value |
|---|---|
| Route | /videos |
| Category eyebrow | Aprendizaje |
| State management | StatefulWidget (player screen) |
| Video package | video_player ^2.9.2 |
| Data source | LocalDataRepository.instance.videos |
| Total videos | 2 |
| Fullscreen support | ✅ Landscape via SystemChrome |
| Streaming | ❌ None — all assets bundled in APK |
| Network required | ❌ Fully offline |