Code reference · Core
:core:media
Playback, behind an interface. The only module that knows ExoPlayer exists.
dev.quiblo.core.media
Feature code never touches Media3. That seam buys two things: the phone and the television drive the same engine with completely different controls, and DRM — if it is ever added — is a change inside this module and nowhere else.
interfacePlayerController
Prepare, play, pause, seek, attach a surface, and report state.
classMedia3PlayerController
The Media3/ExoPlayer implementation.
data classPlayableItem
What to play: a URL, a title, whether it is live, and where to start.
isLive changes three behaviours — no seeking, no duration, no resume point —
and in each case the control is absent rather than present and inert.
data classPlaybackState
Status, position, duration, seekability, video aspect ratio and tracks.
enumPlaybackStatus / PlaybackError
Idle, buffering, playing, ended — and the reasons playback can fail.
data classTrackOption
A selectable subtitle or audio track.