How attajak/vlc-android works
VLC for Android is a media player and library browser, with phone and TV interfaces. The principal workflow is selecting media, managing it in a playlist, and playing it through the playback service and LibVLC; media-library indexing and browsing support discovery. The tree and README also show remote access, metadata scraping, subtitles, and casting-related settings. Several paths are documented or visible only in the tree, so their unverified connections are dashed; the map does not imply inspection of unsampled implementation details.
Main entry points: Medialibrary.java Media library · PlaybackService.kt Playback service · gui Phone interface · PlaylistManager.kt Playlist manager
Components 23
Media discovery
- Storage browser
application/vlc-android/src/org/videolan/vlc/gui/browser/MLStorageBrowserFragment.kt - Storage provider
application/vlc-android/src/org/videolan/vlc/providers/StorageProvider.kt - Media library
medialibrary/src/org/videolan/medialibrary/interfaces/Medialibrary.java - Media items
medialibrary/src/org/videolan/medialibrary/interfaces/media/MediaWrapper.java - Media indexing
application/vlc-android/src/org/videolan/vlc/MediaParsingService.kt
Playback
- Playlist manager
application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt - Playback service
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt - Player controller
application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt - LibVLC instance
application/resources/src/main/java/org/videolan/resources/VLCInstance.kt
User interfaces
- Phone interface
application/vlc-android/src/org/videolan/vlc/gui - TV interface
application/television/src/main/java/org/videolan/television/ui - Video playback UI
application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt - Remote access UI
application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess - Casting preferences
application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesRemoteAccess.kt
Integrations and state
- Remote service
application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessService.kt - Remote server
application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt - Metadata scraping
application/moviepedia/src/main/java/org/videolan/moviepedia/MediaScraper.kt - Movie metadata API
application/moviepedia/src/main/java/org/videolan/moviepedia/MoviepediaApiService.kt - Subtitle service
application/resources/src/main/java/org/videolan/resources/opensubtitles/OpenSubtitleService.kt - App media database
application/mediadb/src/main/java/org/videolan/vlc/database/MediaDatabase.kt - App settings
application/tools/src/main/java/org/videolan/tools/Settings.kt - Device capabilities
application/resources/src/main/java/org/videolan/resources/AndroidDevices.kt
Other components
- Viewer
Connections 24
- Viewer → Phone interface: selects media
- Viewer → TV interface: browses media
- Phone interface → Storage browser: opens browser
application/vlc-android/src/org/videolan/vlc/gui/browser/MLStorageBrowserFragment.kt - Storage browser → Media library: reads catalog
application/vlc-android/src/org/videolan/vlc/gui/browser/MLStorageBrowserFragment.kt - Storage browser → Storage provider: uses provider
- Storage provider → Media library: queries library
application/vlc-android/src/org/videolan/vlc/providers/StorageProvider.kt - Media library → Media items: returns media
medialibrary/src/org/videolan/medialibrary/interfaces/Medialibrary.java - Media indexing → Media library: updates catalog
- Phone interface → Playlist manager: queues media
application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt - TV interface → Playlist manager: starts playback
- Playback service → Playlist manager: delegates playback
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt - Playlist manager → Player controller: controls player
application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt - Player controller → LibVLC instance: uses engine
application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt - LibVLC instance → Media library: sets engine instance
application/resources/src/main/java/org/videolan/resources/VLCInstance.kt - Playback service → Media library: uses media catalog
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt - Playback service → Video playback UI: launches video UI
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt - Remote access UI → Remote service: configures access
- Remote service → Remote server: starts server
application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessService.kt - Metadata scraping → Movie metadata API: requests metadata
- Subtitle service → App media database: stores preferences
- Phone interface → App settings: reads preferences
application/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt - Playback service → App settings: reads playback settings
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt - Playback service → Device capabilities: checks device
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt - Casting preferences → App settings: configures access