How zzyandcjl/duoyi-head-mounted-device-software works
DuoYi is an Android wearable capture and remote-collaboration app. The main documented workflow is to capture UVC camera and headset media, then save it locally and/or stream video and voice for remote viewing; recordings can also be uploaded for Feishu delivery. The README describes a Node.js web/backend and vision capabilities, but those sources are not in this tree (they are identified as other branches), so their nodes have no source paths. App-level wiring beyond the documented flows is not verifiable from the sampled Kotlin excerpts.
Main entry points: MainActivity.kt Android app · FeishuUploadClient.kt Upload client · RtmpLiveStreamer.kt RTMP streamer · LiveNotificationClient.kt Live notices
Components 16
Capture and media
- Android app
app/src/main/java/com/example/zzyy/MainActivity.kt - UVC camera
app/src/main/java/com/example/zzyy/live/UvcVideoSource.kt - Local media
app/src/main/java/com/example/zzyy/MainActivity.kt - Upload client
app/src/main/java/com/example/zzyy/upload/FeishuUploadClient.kt - Upload settings
app/src/main/java/com/example/zzyy/upload/UploadSettings.kt
Live collaboration
- SRS RTMP
- RTMP streamer
app/src/main/java/com/example/zzyy/live/RtmpLiveStreamer.kt - LiveKit voice
- Live notices
app/src/main/java/com/example/zzyy/live/LiveNotificationClient.kt
Web and services
- Node backend
- Viewer browser
- Watch pages
- Ground station
- YOLO proxy
- Feishu group
Other components
- Device operator
Connections 18
- Device operator → Android app: operates
- Android app → UVC camera: captures from
- Android app → Local media: saves media
- Android app → RTMP streamer: starts video
- RTMP streamer → SRS RTMP: streams to
- Android app → LiveKit voice: starts voice
- Android app → Upload client: uploads recordings
- Upload client → Node backend: sends video
- Upload client → Upload settings: uses settings
- Node backend → Feishu group: delivers recordings
- Android app → Live notices: notifies
- Live notices → Node backend: sends notices
- Device operator → Viewer browser: shares link
- Viewer browser → Watch pages: opens
- Watch pages → SRS RTMP: views stream
- Watch pages → LiveKit voice: joins voice
- Watch pages → Ground station: embeds
- Watch pages → YOLO proxy: requests recognition