How xiaobutiaoer/vcampro works
VCAMPRO/VCAMSX is an Android virtual-camera app: users configure a local video or RTMP stream, then the Xposed-side camera hooks are intended to provide replacement camera data to other apps. The sampled UI and controller show stream selection, playback, and persisted settings; the README documents little beyond camera replacement. Hook implementation and wiring are only partially sampled, so those relationships are kept conservative.
Main entry points: HomeController.kt Home controller · HomeScreen.kt Home screen · InfoManage.kt Info manager · MainActivity.kt Main activity
Components 23
App interface
- Main activity
app/src/main/java/com/wangyiheng/vcamsx/MainActivity.kt - Home screen
app/src/main/java/com/wangyiheng/vcamsx/modules/home/view/HomeScreen.kt - Home controller
app/src/main/java/com/wangyiheng/vcamsx/modules/home/controllers/HomeController.kt - Disclaimer dialog
app/src/main/java/com/wangyiheng/vcamsx/components/DisclaimerDialog.kt
Configuration state
- Info manager
app/src/main/java/com/wangyiheng/vcamsx/utils/InfoManage.kt - Video settings
app/src/main/java/com/wangyiheng/vcamsx/data/models/VideoStatues.kt - Video selection
app/src/main/java/com/wangyiheng/vcamsx/data/models/VideoInfo.kt - IP upload API
app/src/main/java/com/wangyiheng/vcamsx/data/services/ApiService.kt
Media playback
- Video provider
app/src/main/java/com/wangyiheng/vcamsx/utils/VideoProvider.kt - Video preview
app/src/main/java/com/wangyiheng/vcamsx/components/VideoPlayerDialog.kt - Stream preview
app/src/main/java/com/wangyiheng/vcamsx/components/LivePlayerDialog.kt - Media playback
app/src/main/java/com/wangyiheng/vcamsx/utils/VideoPlayer.kt
Camera integration
- Hook entry
app/src/main/java/com/wangyiheng/vcamsx/MainHook.kt - Camera hook manager
app/src/main/java/com/wangyiheng/vcamsx/hooks/CameraHookManager.kt - Camera API one
app/src/main/java/com/wangyiheng/vcamsx/camerahook/CameraOne.kt - Camera API two
app/src/main/java/com/wangyiheng/vcamsx/camerahook/CameraTwo.kt
Other components
- User
- RTMP source
- Xposed runtime
- Target app
- Android camera APIs
- Public IP service
- Upload backend
Connections 23
- User → Main activity: opens
- Main activity → Home screen: hosts
- Home screen → Home controller: controls
- Home screen → Disclaimer dialog: displays
- Home screen → Info manager: selects video
- Home screen → Home controller: sets options
- Home controller → Info manager: loads and saves
- Info manager → Video settings: stores
- Info manager → Video selection: stores
- Home controller → IP upload API: uploads IP
- Home controller → Public IP service: reads public IP
- IP upload API → Upload backend: sends request
- Home screen → Video preview: opens preview
- Home screen → Stream preview: opens preview
- Home controller → Video provider: reads video
- Home controller → Media playback: plays stream
- RTMP source → Home controller: provides stream
- Xposed runtime → Hook entry: loads module
- Hook entry → Camera hook manager: initializes hooks
- Camera hook manager → Android camera APIs: hooks APIs
- Target app → Android camera APIs: requests camera
- Camera API one → Android camera APIs: intercepts
- Camera API two → Android camera APIs: intercepts