How azxcvn/xiaomiao-player works
小喵 Player is an Android Flutter media player centered on browsing a local video library and playing selected media. The main workflow is library scan and browse → open media in the player → load playback enhancements and save playback state. The README also documents distinct Bilibili, network-storage, subtitle/danmaku, download, and casting capabilities. Paths identify the relevant product areas; sampled native code confirms Android support for filesystem scanning, media metadata, and background playback. Other subsystem wiring is represented only where documented.
Main entry points: player_page.dart Video player · home_page.dart Library browsing · bili_index_page.dart Bilibili pages · MainActivity.kt Android activity
Components 29
Media library
- Library browsing
lib/pages/home/home_page.dart - Video scanning
lib/services/video_scanner.dart
Playback
- Video player
lib/pages/player/player_page.dart - Audio playback
lib/pages/player/audio_player_page.dart - Playback engine
third_party/media_kit/lib/media_kit.dart - Playback history
lib/services/playback_history_service.dart - Playback progress
lib/services/playback_progress_service.dart - Danmaku service
lib/services/danmaku_service.dart - Subtitle service
lib/services/subtitle_service.dart
Online media
- Bilibili pages
lib/pages/bilibili/bili_index_page.dart - Bilibili video
lib/services/bilibili/bili_video_service.dart - Bilibili auth
lib/services/bilibili/bili_auth_service.dart
Transfer and cast
- Network browser
lib/pages/network/network_browser_page.dart - Network repository
lib/services/network/network_repository.dart - Network stream proxy
lib/services/network/network_streaming_proxy.dart - Download manager
lib/services/download/download_manager.dart - Download page
lib/pages/download/download_manager_page.dart - Casting service
lib/services/cast/cast_service.dart - LAN media server
lib/services/cast/lan_media_server.dart
Android support
- Filesystem walker
android/app/src/main/kotlin/com/azxcvn/moumou/VideoFsWalker.kt - Media metadata
android/app/src/main/kotlin/com/azxcvn/moumou/MediaInfoHelper.kt - Android activity
android/app/src/main/kotlin/com/azxcvn/moumou/MainActivity.kt - Background playback
android/app/src/main/kotlin/com/azxcvn/moumou/BackgroundPlaybackService.kt
Other components
- User
- Android media store
- Bilibili
- 弹弹Play
- Subtitle providers
- DLNA television
Connections 28
- User → Library browsing: opens
- Library browsing → Video scanning: requests scan
- Video scanning → Filesystem walker: scans files
- Filesystem walker → Android media store: enumerates media
- Library browsing → Video player: opens media
- Video player → Playback engine: plays media
- Video player → Playback history: records history
- Video player → Playback progress: saves progress
- Video player → Danmaku service: loads danmaku
- Danmaku service → 弹弹Play: fetches comments
- Video player → Subtitle service: loads subtitles
- Subtitle service → Subtitle providers: searches subtitles
- User → Bilibili pages: browses
- Bilibili pages → Bilibili auth: manages login
- Bilibili pages → Bilibili video: requests video
- Bilibili video → Bilibili: fetches streams
- User → Network browser: browses storage
- Network browser → Network repository: requests listings
- Network repository → Network stream proxy: provides streams
- Network stream proxy → Video player: serves media
- User → Download page: manages downloads
- Download page → Download manager: controls tasks
- User → Casting service: starts casting
- Casting service → LAN media server: serves media
- LAN media server → DLNA television: streams media
- Video player → Android activity: requests background playback
- Android activity → Background playback: starts service
- Android activity → Media metadata: requests metadata