You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: Add Flutter client for Random Video Streamer
- Introduced a new Flutter client application for controlling and monitoring the Random Video Clips Streaming Server.
- Implemented API endpoints for admin context, stats, and audio file retrieval.
- Enhanced the dashboard with navigation and improved UI for better user experience.
- Added support for audio file management and chunk generation controls.
- Included necessary configuration files and dependencies for Flutter development.
* feat: Implement route-based navigation and enhance admin and stats screens
- Added `go_router` dependency for improved routing capabilities.
- Introduced separate pages for Dashboard, Admin, and Stats with a unified header for navigation.
- Enhanced Admin screen to display live status and system usage metrics.
- Updated Stats screen to include pagination for model and audio statistics.
- Refactored Home screen to streamline data loading and improve UI consistency.
* feat: Update dependencies and enhance UI components
- Added `google_fonts` and `url_launcher` dependencies for improved typography and link handling.
- Introduced `video_player_web_hls` for enhanced HLS streaming support on web platforms.
- Refactored the theme and UI components for better consistency and user experience across screens.
- Updated README with detailed instructions for enabling live streaming and platform-specific notes.
This is a starter Flutter app for controlling and monitoring the Random Video Clips Streaming Server.
4
+
5
+
It now has separate route-based pages:
6
+
7
+
-`/#/` Dashboard
8
+
-`/#/admin` Admin
9
+
-`/#/stats` Stats
10
+
11
+
## What is implemented
12
+
13
+
- Live HLS player (`video_player` + **`video_player_web_hls`** on web + **`hls.js`** in `web/index.html`) — **off by default** (`ENABLE_LIVE_STREAM=true` to enable)
14
+
- Stream status polling (`/api/stream-status`)
15
+
- System usage polling (`/api/system-usage`)
16
+
- Chunks list (`/api/chunks`)
17
+
- Actions:
18
+
- Skip video (`/api/skip_to_next`)
19
+
- Skip audio (`/api/skip_to_next_audio`)
20
+
- Generate chunks (`/api/generate_chunk`)
21
+
- Play chunk next (`/api/play_chunk`)
22
+
23
+
## Prerequisites
24
+
25
+
- Backend server running and reachable from your device/emulator/browser
- Android: HLS works with ExoPlayer; cleartext HTTP is allowed in the template manifest for LAN/dev streams.
99
+
-**APK vs web UI port:** The Flutter **web** UI on **:8090** is only static files. The **API is still on :8081** (Flask). Build the APK with `API_BASE_URL=http://<server-ip>:8081`, **not**`:8090`. On the phone, open `http://<server-ip>:8081/api/status` in Chrome — if you get JSON, the app can use the same base URL. Rebuild the APK after adding `INTERNET` in `main` AndroidManifest if release builds had no network access.
100
+
- Web: Chrome/Firefox need **HLS.js** (bundled via `index.html` + `video_player_web_hls`). The HLS origin must send **CORS** headers for `.m3u8` and segment requests. **Mixed content** (HTTPS page + HTTP stream) is blocked by the browser unless you proxy over HTTPS.
101
+
-**LAN / `192.168.x.x`:** If the web build still has `localhost` in `API_BASE_URL` / `HLS_URL`, the client rewrites `localhost` / `127.0.0.1` to the **same host as the page** (e.g. opening `http://192.168.0.11:8090/` uses `http://192.168.0.11:8081` and `:8082` for HLS). Rebuild after pulling so this logic ships.
102
+
- iOS is intentionally out of scope for this setup.
0 commit comments