byteark_player_flutter 2.0.1 copy "byteark_player_flutter: ^2.0.1" to clipboard
byteark_player_flutter: ^2.0.1 copied to clipboard

ByteArkPlayerFlutter is a Flutter plugin for the ByteArk Player, designed to enable seamless video playback and advanced player management within your Flutter applications.

2.0.1 — 2026-06-10 #

Fixed #

  • forward ByteArkPlayerItem.subtitle to iOS SDK

Tooling #

  • exclude build/ from pub publish
  • rename top-level docs/ to doc/ for pub layout

2.0.0 — 2026-06-10 #

Breaking changes #

  • expose aspectRatio config, drop hardcoded fill
  • move credentials to --dart-define-from-file
  • introduce ByteArkPlayerSource + sealed ByteArkDrm hierarchy

Added #

  • forward Item metadata to each JS source (MOB-167)
  • wire DRM end-to-end via WebSourcesMapper + new DrmConfigMapper (MOB-155)
  • add mute and audio/subtitle track change listener events
  • add web demo home that routes to every per-feature demo
  • wire ByteArkAdsSettings onto the SDK's IMA ad plugin

Fixed #

  • forward Item metadata through switchMediaSource too
  • address MR !83 review findings
  • reorder sources so Widevine plays on Chromium
  • correct stale comment + harden DemoCredentials guard
  • remove nested MaterialApp from vertical + lighthouse demos
  • warn when switchMediaSource introduces DRM without Shaka loaded
  • throw on missing sources key in selectAndroidSource
  • enforce non-empty sources at runtime + surface iOS source-selection errors
  • top-align Ads / Multi-DRM / Lighthouse players
  • polish web demo layouts and wire new listener events

Changed #

  • migrate demos to sources API (MOB-153)
  • read sources list across all three platforms
  • unify web demo player size via shared WebDemoPlayerSlot

Tooling #

  • local Bundler path + refreshed Gemfile.lock + regen fastlane README
  • address MR !86 review findings
  • audit pass before develop integration
  • document aspectRatio + sizing trade-off
  • swap Vertical demo stream URL
  • point Multi-DRM demo at production DRM endpoints
  • move Quick start above Features
  • fix stale references to renamed example classes
  • one cross-platform demo home for iOS / Android / Web
  • modernize README for 2.0 — restructure + slim + inline migration
  • 2.0 migration guide + CONTEXT.md / README cleanup (MOB-156)
  • mark mobile DRM live in Multi-DRM demo (MOB-154)
  • add ADR-0004 + glossary entries for Source / DRM scheme
  • remove subtitle size demo from iOS / Android / Web
  • Merge branch 'feature/mob-139' into 'feature/mob-130'
  • consolidate Web platform reference + cross-browser smoke checklist
  • document Ads (IMA) on web + required CSP for ad servers
  • document DRM on web (Widevine + FairPlay) + Shaka CSP
  • set up Linear issue tracker config for engineering skills
  • add web platform design ADRs (0002-0003) and ambiguities
  • add CONTEXT.md domain glossary and ADR-0001 (Track vs Resolution)
  • add pub.dev credentials rotation runbook
  • enforce conventional commits and auto-generate CHANGELOG from MR titles

1.2.0 #

Breaking changes #

  • Public API now uses an explicit ByteArkPlayerController. The widget no longer exposes play(), pause(), seekTo(), dispose(), etc. Create a controller, pass it to ByteArkPlayer(controller: ...), and drive playback through the controller. See README for the migration example.
  • Minimum Flutter version raised to >=3.22.0.
  • iOS: vendor SDKs bumped — requires ByteArkPlayerSDK ~> 0.4.0, ByteArkPlayerSDKAdsPlugin ~> 0.2.0, ByteArkPlayerSDKLighthousePlugin ~> 0.2.0. Host apps need Xcode 17+ / Swift 6.3.x. Apps still on Xcode 16 must pin this plugin to 1.1.6.
  • Android: toolchain raised — AGP 8, Kotlin 1.9, compileSdk 35, JVM 17.

Fixed #

  • Event cross-firing between concurrent ByteArkPlayer instances: events now carry a playerId and each controller filters its own.
  • iOS setSubtitle(null) (DISABLE_SUBTITLE) and switchMediaSource (SWITCHED_MEDIA_SOURCE) no longer hang — the method-channel Future now completes.
  • iOS retain cycle in the SEEK_TO callback ([weak self]).
  • iOS replaced deprecated UIWindow.keyWindow with connectedScenes.
  • Android: removed duplicate registerFullScreenRunnable call.
  • Android: removed dead getCurrentPlayerItem()?.duration evaluation in getDuration().
  • getCurrentTime() / getDuration() no longer throw when the native side returns null; they return 0.
  • getAvailablePlaybackSpeeds() now coerces integer-valued speeds via (num).toDouble() and surfaces failures as an empty list.
  • MethodChannel value normalisation no longer stringifies scalars (preserves int / double / bool).
  • Listener callbacks onPlaybackResolutionChanged and onPlaybackPlaylistItemChanged are now actually invoked when their events fire.
  • DRM: cerfificateUrl field renamed to certificateUrl (legacy spelling kept as a deprecated alias for one release; map payload emits both keys).

Changed #

  • Widget is now a StatefulWidget. The previous StatelessWidget form that leaked subscriptions on rebuild has been removed.
  • Cached the broadcast event stream so all controllers share one native registration.
  • Deferred per-event payload deserialization to the relevant switch arm.

Tooling #

  • flutter_lints ^5.0.0, uuid ^4.5.1.
  • Example app aligned: AGP 8.9.0, Gradle 8.14, JVM 17, desugar_jdk_libs 2.1.4.
  • Added Dart unit tests + a test_dart stage to GitLab CI.

1.1.6 #

  • Bug fixes and performance improvements.

1.1.5 #

  • Update README.md
  • Add Lighthouse metadata configuration

1.1.4 #

  • Bug fixes and performance improvements.

1.1.3 #

  • Added support for transparent subtitle background on iOS

1.1.2 #

  • Improve architecture and performance efficiency

1.1.1 #

  • Bug fixes and performance improvements.

1.1.0 #

  • Major refactor: Simplified and restructured ByteArkPlayer listener and controller setup.
  • Improved code clarity and separation of concerns.
  • Easier integration and customization for developers.
  • Lays foundation for upcoming feature extensions.

1.0.10 #

  • Code quality improvement.

1.0.9 #

  • Update the logic for setSubtitle and setAudio.

1.0.8 #

  • Added more subtitle font size options.
  • Added support for setting the subtitle position as a percentage (%) of the screen height.

1.0.7 #

  • Implement ads event listener.
  • Implement secure surface configuration.
  • Implement subtitle configuration.

1.0.6 #

  • Update README.md

1.0.5 #

  • Code quality improvement.

1.0.4 #

  • Update README.md

1.0.3 #

  • Remove unnecessary public APIs.
  • Improve code quality.

1.0.2 #

  • Add demo integration guide.
  • Update LICENSE file.

1.0.1 #

  • Update README.md

1.0.0 #

  • Initial release
5
likes
150
points
249
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

ByteArkPlayerFlutter is a Flutter plugin for the ByteArk Player, designed to enable seamless video playback and advanced player management within your Flutter applications.

Homepage

License

BSD-3-Clause (license)

Dependencies

flutter, flutter_web_plugins, plugin_platform_interface, uuid, web

More

Packages that depend on byteark_player_flutter

Packages that implement byteark_player_flutter