PlayerSnapshot
Everything about the player that changes rarely, as one immutable value.
Position is deliberately not here. A position field would make this snapshot change sixty times a second, and every consumer collecting it would recompose or redraw at that rate for a value most of them wanted at 4 Hz. Read the position from KitePlayer.position when you need it now, or collect KitePlayer.progress when you want it on a timer.
Constructors
Properties
The ReplayGain actually applied to the current track, in dB, or null when none is.
What media's sound is, as the audio device is told it (#446): the item's own MediaItem.audioContent, with AudioContent.Automatic already answered from the selected video track, so never AudioContent.Automatic itself. AudioContent.Music when nothing is open. An application that asks for audio focus or sets up its audio session itself reads this.
The runtime audio timing shift, mpv's sign. Positive presents the picture earlier, for sound that reaches the ear early. Late sound, such as unreported Bluetooth latency, needs a negative one.
The audio device's platform handle for effects, or null when there is no device open or the platform has no such concept.
Stereo balance: -1 hard left, 0 centre, 1 hard right. See KitePlayer.setBalance.
How far the dialogue is raised or lowered in a downmix, in decibels. See KitePlayer.setDialogueLevel.
True while duration is only an estimate, such as FFmpeg's guess from the bit rate of an ADTS AAC file or of an MP3 without its Xing header, which for variable bit rate audio can be minutes out (#422). A seek bar can draw it as approximate. Seeks are not cut at it, and once playback passes it duration follows what has played; once the item ends it is the real length and this goes false.
duration in milliseconds, or null when it is unknown. For Java, which cannot read a Duration (#394).
The equaliser in force. See KitePlayer.setEqualizer.
The last failure, retained until another one replaces it or the player is opened again.
Positions into queue of the items the queue skipped because they could not be opened, as QueueItemFailure.Skip does (#487). An item leaves the set once it opens, and an edit of the queue carries the set along with the items it moves.
True while only the forced pictures of an image subtitle track draw. See KitePlayer.setForcedPicturesOnly.
Increments on every seek and every stream reconfiguration.
The markers set with io.github.yuroyami.kiteplayer.KitePlayer.setMarkers, sorted by position.
Whether the night mode is on. See KitePlayer.setNightMode.
How far the pitch is moved, in semitones. See KitePlayer.setPitch.
True while the player means to make sound: while it plays, while it buffers, and while a queue that was playing opens its next item. status says whether sound comes out now; this says whether it will once the pipeline can supply it. A guard that pauses for a call or for headphones coming out reads this, not status alone.
The position in queue of the next item while it is open in the background for the gapless handoff, or null. Under a repeat it is the current item's own position, because its next pass is what opens, and null outside queue playback. A next item that is the next part of the current item's file opens nothing, because it joins on the current item's reads, so it reads null too (#456). See QueueConfig.
Whether speed keeps pitch. False plays rate through the resampler, pitch moving with it.
The index of media inside queue, or -1 outside queue playback.
Positions into queue in PLAY order, which is what next, previous and the advance at the end of an item all follow.
The render-quality passes in force.
Whether the queue is playing in a shuffled order. See KitePlayer.setShuffle.
Whether the silent stretches are shortened. See KitePlayer.setSkipSilence: the setting, which is true even while an item with a picture or a live stream plays uncut.
The armed sleep timer, or null. Cleared when it fires. See KitePlayer.setSleepTimer.
What the two front speakers play. See KitePlayer.setStereoMode.
The runtime subtitle timing shift. Positive shows cues later.
Where the implicit subtitle stack anchors, as a fraction of the height. 1.0 is the bottom.
The runtime subtitle size multiplier over the authored size.
The viewer's live subtitle style override, or null when the authored styles stand.
The identifier of the typesetting engine drawing the selected subtitle track, or null when the built-in styling draws it. Non-null only for an ASS or SSA track with kiteplayer-libass installed and SubtitleConfig.typesetting on.
The live picture controls (brightness, contrast, saturation, hue). Renderers honour them.
What the screen shows of this item's dynamic range, as the renderer last reported it. Back to VideoDynamicRange.Standard at every open.
False while video decoding is parked. See KitePlayer.setVideoEnabled.
How the picture occupies its surface. The engine's choice; renderers honour it.
The size of the picture as it is shown, after any crop its container states (#497). See PictureCrop.
The live framing controls (aspect override, zoom, pan). Renderers honour them.