module_mediaplayer
基于【ijkplayer+media3+exoplayer+vlcplayer+ffplayer】编译,适用于Android TV&Phone 平台的视频播放
module_mediaplayer wraps several Android video players into one playback module
module_mediaplayer is a Java library for Android TV and phone apps that compiles and unifies ijkplayer, Media3, ExoPlayer, VLC, and FFmpeg based players.
What the module provides
module_mediaplayer is an Android playback module built on top of several well known player engines. According to its README, it compiles and combines ijkplayer, AndroidX Media3, ExoPlayer2, VLC player, and FFmpeg based players (ffplayer) into a single layer for Android TV and phone applications. The practical aim is to give app developers one API surface instead of wiring each engine by hand. The README presents support tables that compare these engines on audio and video hardware decoding, audio and video software decoding, and the formats each one handles. The project supports common codec and protocol work such as AAC, H264, and H265 video, along with HTTP, HTTPS, and DASH for ijkplayer builds. For Media3 and ExoPlayer2 the tables list HLS, DASH, smooth streaming, and RTMP support across mini, lite, and full build variants. This kind of comparison lets a developer pick a build variant that matches the streaming features a given app needs, rather than pulling in the full engine when a smaller configuration is enough. The README also records a set of external references to the upstream projects, including the ExoPlayer site, the bilibili ijkplayer repository, and the VideoLAN Android sources, so a developer can read the original documentation for each engine they depend on.
Configuration and playback options
The module is configured through a PlayerSDK.init() builder and a StartArgs object, both shown in the README. The init step sets the log switch, the player kernel type (MediaPlayer, Media3, ExoPlayer, or IjkPlayer), the render type (TextureView or SurfaceView), and the decoder type. It also sets the aspect scale, connect timeout, buffering retry behavior, lifecycle auto release, and cache options that apply to ExoPlayer. The start arguments carry the video URL, title, seek position, looping, mute, live flag, auto play, external subtitle URL, and a try see duration for preview clips. Aspect scaling supports automatic, fullscreen, original, and fixed ratios of 1:1, 4:3, 5:4, 16:9, and 16:10. The changelog shows incremental additions over time: a GLSurfaceView path, audio player support, speed control, trial play, resume playback, and selection demos. Subtitle time shift APIs and multi track audio, video, and subtitle support were added for ExoPlayer2 and Media3. These options are exposed as plain method calls, so an app can tune buffering, rendering, and track behavior without dropping down into each engine's internals. The README further documents an initialization sequence where the builder is chained and a final build call returns the configured player to the host application. The connect timeout defaults to 20000 milliseconds when unset.
Build history and platform scope
The README is largely a dated changelog that records steady maintenance across several years. Early entries from 2021 cover ExoPlayer updates and a UI refactor of the media player module, plus RTSP support. Through 2022 the log adds network buffering with a loading indicator and speed display, fullscreen and small window playback, an auto release method for RecyclerView recycling, and ijkplayer hardware decoding. 2023 brings ffplayer, vlcplayer updates, ExoPlayer ffmpeg soft decoding, and ijkplayer DASH support in the full variant. The 2024 entries add Media3 soft decoding for audio and video, an aspect ratio update with more fixed ratios, and a GLSurfaceView option. A 2025 note records a subtitle time shift API for ExoPlayer2 and Media3, and a 2026 entry notes the addition of Media3 1.11.0. The project targets Android TV and phone platforms and is written in Java. The repository does not declare a license in its metadata, so reuse terms should be confirmed with the maintainer before adoption. At the time of writing the project recorded 72 stars and 23 forks. The long changelog shows the maintainer keeps the engine list current with upstream releases rather than promising a fixed feature set across every version of every backend. The 2025 entry names the API as appSuntitleOffsetMs in milliseconds.
Editorial conclusion
At the time of writing, module_mediaplayer recorded 72 stars and 23 forks and was last updated on 2026-08-24, and its README notes the addition of Media3 1.11.0 in its 2026 changelog.
Community notes