Package-level declarations

Types

Link copied to clipboard

Default implementation used to create simple PillarboxExoPlayer.

Link copied to clipboard
abstract class PillarboxBuilder

Builder to create a new instance of PillarboxExoPlayer.

Link copied to clipboard
annotation class PillarboxDsl

Marker for Pillarbox's DSL.

Link copied to clipboard
Link copied to clipboard
class PillarboxLoadControl(bufferDurations: PillarboxLoadControl.BufferDurations = DEFAULT_BUFFER_DURATIONS, allocator: DefaultAllocator = DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE)) : LoadControl

Pillarbox LoadControl implementation that optimize content loading.

Link copied to clipboard

Pillarbox Player interface extension.

Link copied to clipboard
class PillarboxPreloadManager(context: Context, targetPreloadStatusControl: TargetPreloadStatusControl<Int>? = null, mediaSourceFactory: PillarboxMediaSourceFactory = PillarboxMediaSourceFactory(context), trackSelector: TrackSelector = PillarboxTrackSelector(context), bandwidthMeter: BandwidthMeter = PillarboxBandwidthMeter(context), rendererCapabilitiesListFactory: RendererCapabilitiesList.Factory = DefaultRendererCapabilitiesList.Factory( PillarboxRenderersFactory(context) ), val allocator: DefaultAllocator = DefaultAllocator(false, C.DEFAULT_BUFFER_SEGMENT_SIZE), playbackThread: HandlerThread = HandlerThread("PillarboxPreloadManager:Playback", Process.THREAD_PRIORITY_AUDIO))

Helper class for the Media3's DefaultPreloadManager.

Link copied to clipboard

Factory used to create instances of PillarboxBuilder.

Properties

Link copied to clipboard

Default update interval.

Functions

Link copied to clipboard
Link copied to clipboard
fun Player.currentBufferedPercentageAsFlow(updateInterval: Duration = DefaultUpdateInterval): Flow<Float>

Current buffered percentage as flow Player.getBufferedPercentage

Link copied to clipboard

Current media metadata as flow Player.getCurrentMediaItem

Link copied to clipboard
fun Player.currentMediaMetadataAsFlow(withPlaylistMediaMetadata: Boolean = false): Flow<MediaMetadata>

Current media metadata as flow Player.getMediaMetadata

Link copied to clipboard
fun Player.currentPositionAsFlow(updateInterval: Duration = DefaultUpdateInterval): Flow<Long>

Current position of the player updates every updateInterval when it is playing. Send current position once if not playing.

Link copied to clipboard

Duration Player.getDuration as Flow.

Link copied to clipboard
fun Player.getAspectRatioAsFlow(defaultAspectRatio: Float): Flow<Float>

Get aspect ratio of the current video as Flow.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Get current media item index as flow Player.getCurrentMediaItemIndex

Link copied to clipboard

Get current media items as flow Player.getCurrentMediaItems

Link copied to clipboard

Get current tracks as flow Player.getCurrentTracks

Link copied to clipboard

Playback speed Player.getPlaybackSpeed as Flow.

Link copied to clipboard
fun Player.isPlaybackSpeedPossibleAtPosition(position: Long, speed: Float, window: Timeline.Window = Window()): Boolean

Return if the playback speed is possible at position. Always return true for none live content or if Player.getCurrentTimeline is empty.

Link copied to clipboard

Is playing Player.isPlaying as Flow.

Link copied to clipboard

Media item count Player.getMediaItemCount as Flow.

Link copied to clipboard

Preconfigured BandwidthMeter for Pillarbox.

Link copied to clipboard

Create a new instance of PillarboxExoPlayer.

Link copied to clipboard

Preconfigured RenderersFactory for Pillarbox.

Link copied to clipboard

Preconfigured TrackSelector for Pillarbox.

Link copied to clipboard

Playback state Player.getPlaybackState as flow.

Link copied to clipboard
Link copied to clipboard

Play when ready as flow Player.getPlayWhenReady

Link copied to clipboard

Run the task in the same thread as Player.getApplicationLooper if it is necessary.

Link copied to clipboard

Shuffle mode enabled Player.getShuffleModeEnabled as Flow.

Link copied to clipboard
fun Player.tickerWhilePlayingAsFlow(interval: Duration = DefaultUpdateInterval): Flow<Unit>

Ticker emits event every interval when Player.isPlaying is true. Emit a value once at least once.

Link copied to clipboard

Get video size as flow Player.getVideoSize