GuidesAPI ReferenceRelease Notes
HomeLog InHome
Release Notes

1.19.0 - Flutter


Breaking changes

  • Replaced ctaVisibility on BlazeVideosPlayerCtaStyle with a simple bool? isVisible. The BlazeVideosPlayerCtaVisibility class and BlazeVideosPlayerCtaVisibilityType enum were removed.
  • Renamed BlazeKeysPresets to BlazeExtraInfoKeyPreset (also the type of the keyPreset parameter of BlazeWidgetItemCustomMapping.fromPreset).
  • iOS: raised the minimum deployment target to 15.0.

Added

Playback configuration

  • BlazeVideosPlaybackConfiguration (multiAspectRatio, shouldOpenInLandscape, pipConfiguration, bufferingSpinnerDelayMs), BlazeMomentsPlaybackConfiguration (loopBehavior, bufferingSpinnerDelayMs) and BlazeStoriesPlaybackConfiguration (bufferingSpinnerDelayMs). Passed as playbackConfiguration on the Stories / Moments / Videos row and grid widgets, and on playStory, playStories, playVideo and playVideos.
  • Global defaults per vertical: BlazeSDK.setDefaultStoriesPlaybackConfiguration() / getDefaultStoriesPlaybackConfiguration(), setDefaultMomentsPlaybackConfiguration() / getDefaultMomentsPlaybackConfiguration(), setDefaultVideosPlaybackConfiguration() / getDefaultVideosPlaybackConfiguration().
  • Moments auto-advance through BlazeMomentsLoopBehavior.infiniteLoop() and BlazeMomentsLoopBehavior.loopAndAdvance(numberOfPlays:).
  • bufferingSpinnerDelayMs on Stories, Moments and Videos playback configuration, to control when the buffering spinner appears (native default 1000ms; negative values are clamped to 0).

Player control and events

  • Global player sound-state APIs: BlazeSDK.setPlayerSoundState(BlazePlayerSoundState) and BlazeSDK.isMuted(). The native default is muted and the state is not persisted across app launches.
  • BlazeSDK.appendMomentsToPlayer() to append content to an already-open moments player.
  • entryContentId parameter on the entry point methods (prepareStories, playStories, prepareMoments, playMoments, prepareVideos, playVideos).
  • BlazeGlobalDelegate.playbackModificationHandler to modify the playback URL (for example, tokenization) before HLS/MP4 playback starts, with BlazePlaybackModificationRequest / BlazePlaybackModificationResponse. Returning synchronously or asynchronously is both supported; if the handler throws, the SDK falls back to the original URL.
  • onReadStatusChanged on BlazePlayerEntryPointDelegate, with BlazeOnReadStatusChangedParams.

Casting and Picture-in-Picture

  • Casting support for the Videos player - Chromecast on Android, AirPlay on iOS: casting field in BlazeVideosPlayerButtonsStyle, BlazeSDK.stopActiveCastingSession(), and BlazeSDK.setCastingDelegate() with BlazeCastingDelegate.onCastingStateChanged / BlazeCastingStateChangedParams / BlazeCastingState.
  • Picture-in-Picture support for the Videos player: pictureInPicture field in BlazeVideosPlayerButtonsStyle, BlazePipConfiguration with enterPipOnAppBackground, BlazeSDK.stopActivePiPSession() / BlazeSDK.isPiPActive(), and BlazeSDK.setPipDelegate() with BlazePipDelegate.onPiPStateChanged / BlazePipStateChangedParams / BlazePipState.

Player buttons and styles

  • captions, forceRotation, casting, pictureInPicture, seekForward and seekBackward buttons in BlazeVideosPlayerButtonsStyle.
  • seekForward, seekBackward and search buttons in BlazeMomentsPlayerButtonsStyle.
  • Custom action buttons: customActionButtons in BlazeStoryPlayerButtonsStyle and BlazeMomentsPlayerButtonsStyle, with BlazeCustomActionButton / BlazeCustomActionButtonParams, a declarative VisibilityCondition (always, never, keyExists, keyNotExists, keyEquals, keyNotEquals, keyIn, keyNotIn, keyGreaterThan, keyLessThan, keyBetween, keyContains, and, or, not) to show or hide a button based on content metadata, and the onTriggerCustomActionButton callback on all player delegates.
  • isVisible on BlazeStoryPlayerCtaStyle and BlazeMomentsPlayerCtaStyle.
  • Story player title image: a contextual image displayed alongside the story title in the player header, through the new image property on BlazeStoryPlayerTitleTextStyle and the new BlazeStoryPlayerTitleImageStyle, BlazeStoryPlayerTitleImageSource (staticSource / dynamicSource) and BlazeStoryPlayerTitleImageStaticSource (image / url) types.
  • followEntity in BlazeMomentsPlayerStyle, with BlazeMomentsPlayerFollowEntityStyle, BlazeMomentsPlayerFollowEntityStateStyle, BlazeMomentsPlayerFollowEntityAvatarStyle, BlazeMomentsPlayerFollowEntityChipStyle, BlazeMomentsPlayerFollowEntityChipContentSource, BlazeFollowEntityType and BlazeFollowEntityTypeValue.
  • BlazePlayerDisplayMode support on BlazeMomentsPlayerStyle via playerDisplayMode.

Follow entities

  • Followed-entities management: BlazeSDK.setFollowedEntities(), insertFollowedEntities(), removeFollowedEntities() and getFollowedEntities().
  • BlazeSDK.setFollowEntitiesDelegate() with BlazeFollowEntitiesDelegate.onFollowEntityClicked, BlazeOnFollowEntityClickedParams and BlazeFollowEntity.

Widgets

  • Moments widget-to-tabs support: BlazeMomentsRowView.tabs() and BlazeMomentsGridView.tabs() constructors taking a tabsConfiguration and an optional momentsContainerTabsDelegate. Tapping any widget item opens a fullscreen Moments tabs player; the widget's thumbnails are driven by the first tab's data source. New types: BlazeMomentsWidgetTabsConfiguration, BlazeMomentsContainerTabItem, BlazePlayerTabsStyle, BlazePlayerTabItemStyle, BlazePlayerTabItemIconStyle, BlazePlayerTabsGradientStyle, BlazePlayerTabItemCustomImageStates, plus BlazePlayerContainerTabsDelegate with onTabSelected / BlazeOnTabSelectedParams.
  • shimmering in BlazeWidgetLayout to customize widget loading-state colors, through the new BlazeWidgetShimmeringStyle (baseColor, highlightColor).

Search and content

  • BlazeDataSourceType.search for free text content search (searchText, maxItems, labels).
  • BlazeSDK.showSearchScreen({BlazeSearchScreenOptions? options}) to present the standalone search screen, with an optional suggestionsDataSource. Note: on Android a suggestionsDataSource is required; on iOS it is optional.
  • promotedLabels in BlazeRecommendationsType.forYou, to prioritize certain labels when fetching recommendations.

Localization, privacy and packaging

  • BlazeSDK.setPreferredLanguage() for text localization (content language preference).
  • BlazeSDK.setDisableAnalytics() to stop analytics collection while keeping event callbacks and content delivery.
  • Swift Package Manager support for iOS, for blaze_flutter_sdk, blaze_flutter_ima_ads and blaze_flutter_gam_ads.

Improved

  • Accessibility support.
  • Improved video caching performance.
  • iOS: improved content and HLS prefetching performance.