1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 07:20:00 +03:00

AI: polish mobile parts

This commit is contained in:
Anton Afanasyeu
2026-05-23 17:05:31 +02:00
parent a698803d19
commit 324f64e802
18 changed files with 290 additions and 237 deletions

View File

@@ -1,8 +1,8 @@
# Android Cast (POC)
**Roadmap & alpha scope:** [docs/ROADMAP.md](docs/ROADMAP.md) · USB-C/HDMI: [docs/USB_HDMI_CAST.md](docs/USB_HDMI_CAST.md) · Commercial (dev-gated): [docs/COMMERCIAL.md](docs/COMMERCIAL.md)
**Roadmap & alpha scope:** [docs/ROADMAP.md](docs/ROADMAP.md) · **LAN demo QA:** [docs/ALPHA_SOAK.md](docs/ALPHA_SOAK.md) · USB-C/HDMI: [docs/USB_HDMI_CAST.md](docs/USB_HDMI_CAST.md) · Commercial (dev-gated): [docs/COMMERCIAL.md](docs/COMMERCIAL.md)
Minimal LAN screen-casting proof of concept in **Java**. Captures screen + playback audio, encodes **H.264 + AAC**, streams over **TCP or UDP** to a receiver that decodes and plays back.
Minimal LAN screen-casting proof of concept in **Java**. Captures screen + playback audio, encodes **H.264 + AAC**, streams over **UDP or TCP** to a receiver that decodes and plays back.
## Features
@@ -13,13 +13,16 @@ Minimal LAN screen-casting proof of concept in **Java**. Captures screen + playb
- Playback audio capture (API 29+) → AAC-LC
- Runtime notification permission (Android 13+)
## Quick start
## Quick start (alpha demo)
1. Install the same APK on two devices on the **same WiFi**.
2. **Receiver** (TV): **Receive** match transport (TCP/UDP) & options → tap **Start listening** (notification appears; service keeps running).
3. **Sender** (tablet): **Send****same transport** → pick receiver → PIN → approve screen capture.
4. Watch the **notification** on both devices for connection status (not only the toast).
5. Stop from the notification **Stop** action.
2. **Receiver:** **Receive** → transport **UDP** → stream protection **None****Start listening**.
3. **Sender:** **Send****UDP** → pick **one** receiver → PIN → approve screen capture.
4. Sender resolution: **Original**, **720p**, **480p**, or **Auto** (settings drawer).
5. Watch **notifications** on both devices for status (not only toasts).
6. Stop from the sender notification **Stop** action.
Full soak script: [docs/ALPHA_SOAK.md](docs/ALPHA_SOAK.md).
### If video never appears
@@ -43,11 +46,13 @@ adb install -r app/build/outputs/apk/debug/app-debug.apk
| Option | Effect |
|--------|--------|
| **Transport TCP** | Reliable delivery; default |
| **Transport UDP** | Lower latency, may drop frames (POC) |
| **Quality Low/Med/High** | Video bitrate 0.8 / 2 / 4 Mbps and FPS 20 / 24 / 30 |
| **Resolution** | Scales VirtualDisplay before encode (full, 75%, 50%, or max 720p height) |
| **Transport UDP** | Default; lower latency |
| **Transport TCP** | Reliable fallback |
| **Sender resolution** | **Original** (native), **720p** / **480p** (long-edge cap), **Auto** (adaptive from peer stats) |
| **Bitrate** | Estimated / quality / speed modes in settings |
| **Stream protection** | FEC/NACK optional on UDP — use **None** for alpha demo |
| **Audio** | `AudioPlaybackCapture` + AAC (Android 10+) |
| **Camera capture** | Rear/front Camera2 (Android 10+); requires camera permission |
## Protocol