bb_player 8.63.0
bb_player: ^8.63.0 copied to clipboard
Flutter plugin for Blue Billywig's native video player SDK. Provides hardware-accelerated playback with VAST/VPAID ads, analytics, Chromecast, Picture-in-Picture, fullscreen, outstream, and Shorts (ve [...]
8.63.0 #
MediaClipfromonMediaClipLoaded,getClipData()andgetPlayerState().clipDatanow carries the clip'stype,description,author,createdDate,modifiedDate,publishedDateandoriginalFilenameon Android and iOS. Before, only id, title, length, width, height and status reached Dart.authorandpublishedDateare new fields onMediaClip.- Android: a
webview_flutterWebView registered with the new WebView process guard no longer takes the whole app down when its render process dies. This is an internal contract withbb_channel, not a public API: the method channelcom.bluebillywig.bb_player/webview_process_guardtakesregister({webViewId}, returns whether the guard is active) and sendsprocessGone({webViewId, didCrash}). Change it together withandroid_process_guard.dartinbb_channel. Other WebViews in the app, including those of the native player SDK and IMA, are not guarded. loadWithClipListId(index: n)now starts the clip list at positionnon Android and iOS; the native side used to dropindex, so playback always started at the first clip. Thecontextargument ofloadWithClipId,loadWithClipListIdandloadWithProjectIdnow also reaches the native load (it was dropped too).- Android:
BBShortsViewnow uses true Hybrid Composition (initExpensiveAndroidView), likeBBPlayerViewsince 8.53. Under Texture Layer Hybrid Composition the shorts video could shrink into the top-left corner after the first tap. - Resolves BB native player SDK 8.63 (Android
8.63.2on Maven Central, iOS8.63.2). The iOS podspec pins kit8.63.2; Android and Swift Package Manager follow the latest 8.x from the unchanged 8.52 floor. 8.62 was never published to pub.dev; this release goes straight from 8.61.0.
8.61.0 #
- New
BBPlayerController.lastKnownPosition(clipId)— returns the saved playback position (seconds) for a clip from the native SDK's play history, ornullwhen there is none. Use it to build "Continue Watching" rows without creating a player. Android and iOS. Throws aPlatformException(INVALID_ARGS) for an emptyclipId, or on Android (LAST_KNOWN_POSITION_ERROR) when the play-history lookup itself fails. - Example app: the API screen gains Continue Watching actions.
- Docs: removed the dead
maven.bluebillywig.comrepository from the getting-started guide; the native SDK resolves from Maven Central. - Resolves BB native player SDK 8.61 (Android
8.61.1on Maven Central, iOS8.61.0on CocoaPods). The native SDK floor is unchanged (8.52); the plugin follows the latest 8.x. Versions 8.58.0–8.60.0 were never published to pub.dev; this release goes straight from 8.57.0.
8.57.0 #
- Android: bumped
compileSdkfrom 34 to 36 (Android 16). Compiling against 34 broke startup when the player was embedded in an app running on Android 15+ (API 35+), where the OS forces edge-to-edge drawing. - Requires AGP 8.9 or newer. Flutter plugins are built from source by the
consuming app, so your app's Android Gradle Plugin compiles this module —
and AGP older than 8.9 rejects
compileSdk 36outright. Upgrade AGP before taking this version. The example app now uses AGP 8.9.1 / Gradle 8.11.1 to demonstrate that floor. - Note: this does not cover the Google Play requirement to target API 36
from 31 August 2026. That applies to your app's
targetSdk; library modules have notargetSdkand AGP 8 ignores it for them. Set it in your own app. - Stops at 36 deliberately — API 37 requires migrating the native SDK from ExoPlayer 2 to Media3, tracked separately.
- Versions 8.55.0 and 8.56.0 were never published to pub.dev; this release goes straight from 8.54.0. The package version tracks the BB native player SDK minor, which is at 8.57.0 on both Maven Central (Android) and CocoaPods (iOS) as of 24 August 2026.
8.54.0 #
- Release tooling only — pub.dev publishing moved to OIDC trusted publishing and the release tag trigger was fixed. No changes to plugin behaviour, Dart API, or native integration.
8.53.0 #
- Android: switched
BBPlayerViewto true Hybrid Composition (initExpensiveAndroidView) instead of Texture Layer Hybrid Composition. Taps on the native control-bar buttons (settings / fullscreen) in the channel detail player were being swallowed under TLHC's synthesised touch dispatch; Hybrid Composition routes touches natively to the embedded views. Also the correct mode for the player'sSurfaceViewoutput (required for 10-bit / HDR / secure playback). - Android: bumped the native player SDK floor to
8.52.+(was8.50.+). BB native SDK 8.52 (PR #512) widened the player's host-activity check fromAppCompatActivitytoFragmentActivity, so the settings / track BottomSheet now shows under Flutter'sFlutterFragmentActivityhost. On 8.50.x the sheet silently never appeared (tap registered, no panel).
8.50.0 #
- Switched the package version to follow BB sprint release logic — the
minor track now aligns with the BB native SDK (8.50.x for SDK 8.50). The
previous v1.0.0 has been superseded; consumers should pin
bb_player: ^8.50.0. - Bumped native SDKs to 8.50.0 (iOS) and 8.50.+ (Android), aligning with the latest Blue Billywig native player kits.
- Reach parity with
react-native-bb-player's public API surface:LoadContextparameter on everyloadWith*method (contextEntityType / contextEntityId / contextCollectionType / contextCollectionId).loadWithContentIdAndTypecanonical loader withBBContentTypeenum (mediaclip/c,mediacliplist/l,project/p/pj).- New
BBPlayerControllermethods:setInView,unload,updatePlayout,presentModal,closeModal,endCastSession. - New getters:
getInView,getAdMediaWidth,getAdMediaHeight,getIsCasting,getCastDeviceName. BBCastButtonandBBCastMiniControlswidgets (render an empty placeholder when the host activity isn't aFragmentActivityor the Cast SDK isn't linked).- Module-level
BBModalPlayerAPI (present/dismiss/addEventListener). addCastSessionListenerfor global Cast session events.convertPlayoutUrlToMediaclipUrlutility.
BBShortsViewOptionsnow accepts a typedBBShortsDisplayFormat(full/list/player),shelfStartSpacing,shelfEndSpacing, andskipShortsAdOnSwipe.BBOutstreamView: added real spring physics (damping/stiffness),none/layoutanimation types,isCollapsedgetter, andanimateCollapse/animateExpandaliases.- Example app restructured into per-feature screens mirroring the React
Native demo: Simple Player → API Reference → Shorts → Outstream Ads →
Modal Player. Deep-link handler (
bbplayer://watch/<id>) included. - Docs split into per-feature guides under
doc/guides/. - Android: bumped to Kotlin 2.3.10 and enabled core-library desugaring (required by BB SDK 8.50+).
- iOS: marked platform-view classes
@MainActorfor Swift 6 strict concurrency.
Breaking #
- Apps using
BBCastButton(or anything that mounts the Cast picker) must useFlutterFragmentActivityas the host activity (not the defaultFlutterActivity). Seeexample/android/.../MainActivity.kt.
1.0.0 #
- Initial release
- BBPlayerView widget for video playback
- BBShortsView widget for vertical video (TikTok-style)
- BBOutstreamView widget for animated outstream ad placements
- Full playback controls (play, pause, seek, volume, fullscreen)
- 40+ event callbacks for playback, ads, analytics
- Async state queries (duration, currentTime, clipData, etc.)
- Content loading via clip ID, clip list, project, or JSON URL
- iOS support via BBNativePlayerKit (8.42.0)
- Android support via bbnativeplayersdk (8.42.+)
- Chromecast support on both platforms