BBPlayerState
class BBPlayerState
Reactive state holder that bridges BBNativePlayerViewDelegate callbacks to SwiftUI state.
Observe any property in a SwiftUI view to trigger automatic updates (per-property tracking via @Observable).
Use the imperative control methods (play(), pause(), seek(to:), etc.) to control the player.
Create with @State private var playerState = BBPlayerState().
Important: Call
destroy()from.onDisappearto ensure timely cleanup of SDK resources, or use the convenienceBBNativePlayer/init(jsonUrl:options:)initializer for automatic lifecycle management.
Functions
autoPlayNextCancel
func autoPlayNextCancel()
Cancel auto-play next.
collapse
func collapse()
Collapse the player (outstream).
destroy
func destroy()
Destroy the player and release resources.
endCastSession
func endCastSession()
End the current Cast session and stop playback on the Cast device.
enterFullScreen
func enterFullScreen()
Enter fullscreen mode.
exitFullScreen
func exitFullScreen()
Exit fullscreen mode.
expand
func expand()
Expand the player (outstream).
loadClip
func loadClip(id clipId: String, autoPlay: Bool = true, seekTo: Double? = nil, context: [String: Any]? = nil)
Load a clip by ID.
loadClipList
func loadClipList(id clipListId: String, autoPlay: Bool = true)
Load a clip list by ID.
loadProject
func loadProject(id projectId: String, autoPlay: Bool = true)
Load a project by ID.
pause
func pause()
Pause playback.
play
func play()
Start or resume playback.
resumeCastSession
func resumeCastSession()
Detect and resume an existing Cast session.
seek
func seek(to seconds: Double)
Seek to the given absolute position in seconds.
seekRelative
func seekRelative(_ offsetInSeconds: Double)
Seek relative to the current position (e.g. +10.0 or -10.0 seconds).
setCastMode
func setCastMode(_ mode: String?)
Set Cast routing mode. "auto" for native channel SDKs.
setMuted
func setMuted(_ muted: Bool)
Set the muted state.
setVolume
func setVolume(_ volume: Double)
Set the playback volume (0.0 to 1.0).
showCastPicker
func showCastPicker()
Show the Google Cast device picker.
The Google Cast SDK is initialized automatically on first use via the SDK's ChromeCastHelper.
unload
func unload()
Unload current media without destroying the player (for reuse).
Properties
currentTime
internal(set) var currentTime: Double
Current playback position in seconds. Updated on seek, clip load, and playback end.
isCasting
var isCasting: Bool
Whether the player is currently casting to a Chromecast device.
isMuted
internal(set) var isMuted: Bool
Whether the player is muted.
Note: This value is only updated when
setMuted(_:)is called from Swift code. The underlying SDK does not provide a mute-change callback, so changes made via the player's own skin controls will not be reflected here.