# API Reference

After creating ByteArkPlayerFragment, you can call the player API through ByteArkPlayerFragmentController.

# Setup methods

Method Description
startService() Start the Player Service
releaseService() Release the Player Service and its resources
addFragmentEventListener(listener: PlayerFragmentListener) Add a listener for player events
removeFragmentEventListener(listener: PlayerFragmentListener) Remove a listener
addCompanionAdSlot(slot: ByteArkCompanionAdSlot) Add a Companion Ad slot

# Media controller

Method Description
openMedia(item: ByteArkPlayerItem) Open a video for playback
openPlaylist(playlist: ByteArkPlayerPlaylist) Open a playlist
getPlayerItem(): ByteArkPlayerItem? Returns the currently playing ByteArkPlayerItem
getPlaylist(): ByteArkPlayerPlaylist? Returns the current playlist
getCurrentQueue(): List<ByteArkPlayerItem> Returns the current queue
selectQueueItem(item: ByteArkPlayerItem) Select a queue item to play
addItemToQueue(item: ByteArkPlayerItem) Add an item to the queue
removeQueueItem(item: ByteArkPlayerItem) Remove an item from the queue

# Playback controller

Method Description
play() Start playback
pause() Pause playback
seekTo(position: Long) Seek to a position (milliseconds)
seekForward() Seek forward by withSeekTime
seekBackward() Seek backward by withSeekTime
next() Play the next item in the playlist/queue
previous() Play the previous item

# Tracks & quality

Method Description
getCurrentAudio(): ByteArkAudio? Current audio track
getAudios(): List<ByteArkAudio> All audio tracks
setAudio(audio: ByteArkAudio) Select an audio track
getCurrentSubtitle(): ByteArkSubtitle? Current subtitle
getSubtitles(): List<ByteArkSubtitle> All subtitles
setSubtitle(subtitle: ByteArkSubtitle) Select a subtitle
getCurrentResolution(): ByteArkResolution? Current resolution
getResolutions(): List<ByteArkResolution> All available resolutions
setResolution(resolution: ByteArkResolution) Select a resolution

# Playback speed

Method Description
getAvailablePlaybackSpeeds(): List<Float> Available playback speeds
getCurrentPlaybackSpeed(): Float Current playback speed
setPlaybackSpeed(speed: Float) Set playback speed

# Time & status

Method Description
getCurrentTime(): Long Current playback time (milliseconds)
getDuration(): Long Total duration (milliseconds)
isReady(): Boolean Player is ready
isPlaying(): Boolean Currently playing
isBuffering(): Boolean Currently buffering
isSeeking(): Boolean Currently seeking
isEnded(): Boolean Playback ended
isMuted(): Boolean Muted
isFullScreen(): Boolean In full-screen mode
isInPictureInPicture(): Boolean In Picture-in-Picture mode

# UI controller

Method Description
toggleFullScreen() Toggle full-screen mode
togglePictureInPicture() Toggle Picture-in-Picture
showControls() Show the control bar
hideControls() Hide the control bar