API Reference
Once a ByteArkPlayerViewController is created, you can call the Player API through the player instance.
Configuration methods
| Method | Description |
func configure(with config: ByteArkPlayerConfig) | Configure the player with a ByteArkPlayerConfig (built via ByteArkPlayerConfigBuilder) |
func destroy() | Release the player's resources |
func getPlugin(with name: String) -> ByteArkPlayerPlugin? | Get a plugin instance by name |
func addPlaybackEngineObserve(...) -> any NSObjectProtocol | Subscribe to playback-engine notifications |
Playback controller
| Method | Description |
func play() | Start playback |
func pause() | Pause playback |
func seek(to time: TimeInterval, completionHandler:) | Seek to position (seconds) |
func muted(_ muted: Bool) | Mute / unmute |
func setVolume(_ volume: Float) | Set volume (0.0–1.0) |
func setPlaybackSpeed(_ speed: Float) | Set playback speed |
UI controller
| Method | Description |
func toggleFullscreen() | Toggle fullscreen mode |
func togglePictureInPictureMode() | Toggle Picture-in-Picture |
func enablePictureInPicture() | Enable Picture-in-Picture |
func disablePictureInPicture() | Disable Picture-in-Picture |
func showControls() | Show the control bar |
func hideControls() | Hide the control bar |
Background & remote control
| Method | Description |
func enableBackgroundAudio() | Enable audio playback while the app is backgrounded |
func disableBackgroundAudio() | Disable background audio |
func enableRemoteControlCenter() | Enable control from iOS Control Center |
func disableRemoteControlCenter() | Disable Control Center integration |
Tracks & quality
| Method | Description |
func setAudioTrack(_ audioTrack: ByteArkPlayerMediaTrack) | Select an audio track |
func setSubtitleTrack(_ subtitleTrack: ByteArkPlayerMediaTrack?) | Select a subtitle track (pass nil to disable) |
func setResolution(_ resolution: ByteArkPlayerMediaResolution) | Select a video resolution |
Playlist
| Method | Description |
func next() | Skip to the next item in the playlist |
func previous() | Return to the previous item |
func setPlaylistItem(_ playbackItem: ByteArkPlayerItem) throws | Set the active playlist item |
Variables
View hierarchy
| Variable | Description |
var playerContainerView: ByteArkPlayerContainerView { get } | Container view holding the rendering view, controls, etc. |
var playerViewController: ByteArkPlayerViewController? { get } | The player's view controller |
var fullscreenViewController: ByteArkPlayerFullscreenViewController? { get } | View controller used for fullscreen |
var controlsView: UIView? { get } | The control-bar view |
Configuration & state
| Variable | Description |
var config: ByteArkPlayerConfig? { get } | Config used to create the player |
var delegate: ByteArkPlayerPlaybackDelegate? { get, set } | Playback delegate |
var playbackItem: ByteArkPlayerItem? { get } | The currently playing item |
var playlist: ByteArkPlayerPlaylist? { get } | The active playlist |
Playback info
| Variable | Description |
var currentTime: TimeInterval { get } | Current playback time (seconds) |
var duration: TimeInterval { get } | Duration of the current item (seconds) |
var playbackSpeed: Float { get } | Current playback speed |
var volume: Float { get } | Current volume |
Tracks
| Variable | Description |
var audioTrack: ByteArkPlayerMediaTrack? { get } | Active audio track |
var audioTracks: [ByteArkPlayerMediaTrack] { get } | All audio tracks for the current item |
var subtitleTrack: ByteArkPlayerMediaTrack? { get } | Active subtitle track |
var subtitleTracks: [ByteArkPlayerMediaTrack] { get } | All subtitle tracks for the current item |
var resolution: ByteArkPlayerMediaResolution? { get } | Active resolution |
var resolutions: [ByteArkPlayerMediaResolution] { get } | All resolutions for the current item |
State flags
| Variable | Description |
var isReady: Bool { get } | The player is ready to play |
var isPlaying: Bool { get } | Currently playing |
var isSeeking: Bool { get } | Seeking |
var isBuffering: Bool { get } | Buffering |
var isEnded: Bool { get } | Playback finished |
var isMuted: Bool { get } | Muted |
var isFullscreen: Bool { get } | In fullscreen mode |
var isInPictureInPicture: Bool { get } | In Picture-in-Picture mode |