admel_sdk 1.0.21
admel_sdk: ^1.0.21 copied to clipboard
AdMel SDK for Flutter - Audio advertisement plugin with banner display, VAST support, mute detection, and auto-refresh.
1.0.21 #
- Change: native SDK (xcframework/AAR) is now bundled directly in the Flutter plugin. CocoaPods and Maven Central dependencies have been removed. The native SDK is downloaded from R2 at publish time and vendored into the package.
1.0.20 #
- Fix: ad playback now pauses (instead of stops) when device volume drops below the mute threshold during playback. Raising the volume resumes the ad from where it left off.
- Raise minimum native SDK dependency to 1.0.13 (iOS: AdMel-SDK ~> 1.0.13).
1.0.19 #
- Fix:
startDuckingis now called ononAdStarted(when ad audio actually begins) instead ofshowAd(when the ad is requested). Previously, ducking was activated immediately atshowAdtime, causing host app BGM/SE to be unnecessarily ducked during theinitialRefreshIntervalwait period before the first ad plays. - Change: mute detection threshold lowered from 30% to 20%.
- Raise minimum native SDK dependency to 1.0.12 (iOS: AdMel-SDK ~> 1.0.12).
1.0.18 #
- Raise minimum native SDK dependency to 1.0.11 (iOS: AdMel-SDK ~> 1.0.11).
1.0.17 #
- Fix:
stopDuckingnow reactivates the AVAudioSession withPlayback + MixWithOthersafter sendingNotifyOthersOnDeactivation. On iPadOS, leaving the session inactive causedoutputVolumeto return 0.0, makingisMuted()always report muted and permanently showing the volume warning overlay. This also prevents host app BGM/SE (audioplayers) from failing to resume after ad playback. - Fix: volume change detection now uses KVO on
AVAudioSession.outputVolume(public API) instead of the privateAVSystemController_SystemVolumeDidChangeNotification, which stopped firing reliably on iOS 16+. This ensuresonMuteStateChanged(false)is delivered promptly when the user raises the device volume. - Raise minimum native SDK dependency to 1.0.10 (iOS: AdMel-SDK ~> 1.0.10).
1.0.16 #
- Fix: infinite recursion crash in
setMuteBannerEnabled:(iOS). The method was callingself.muteBannerEnabled = enabledwhich in Objective-C invokes the setter itself. Fixed by assigning directly to the instance variable_muteBannerEnabled. - Raise minimum native SDK dependency to 1.0.9 (iOS: AdMel-SDK ~> 1.0.9).
1.0.15 #
- Fix: crash on app startup caused by
startMonitoringfiringcheckMuteStatussynchronously during theinitializemethod channel handler. The initial check now runs on the next run loop iteration viadispatch_async(iOS), avoiding reentrantinvokeMethodcalls. - Raise minimum native SDK dependency to 1.0.8 (iOS: AdMel-SDK ~> 1.0.8).
1.0.14 #
- Fix:
onMuteStateChangedcallback now fires even whenmuteBannerEnabledisfalseor SDK is paused. Previously, the callback was blocked by early returns in the banner control logic, causing apps that disabled the mute banner to never receive mute state change notifications. - Raise minimum native SDK dependency to 1.0.7.
1.0.13 #
- Fix: mute monitoring now starts at
initialize()instead ofshowAd(), soonMuteStateChangedfires andisMuted()returns accurate results before the first ad plays. - Fix:
isMuted()reads the current device volume directly instead of returning a cached value, eliminating false negatives before monitoring starts. - Raise minimum native SDK dependency to 1.0.6 (iOS: AdMel-SDK ~> 1.0.6, Android: admel-sdk:1.0.6).
1.0.12 #
- Fix: raise minimum native SDK dependency to 1.0.5 (iOS: AdMel-SDK ~> 1.0.5, Android: admel-sdk:1.0.5) to prevent build errors when using new APIs added in 1.0.11.
1.0.11 #
- Feature:
setMuteBannerEnabled(bool)— ミュートバナーの表示/非表示をアプリ側から制御可能に。falseに設定すると既存のミュートバナーも即時非表示。デフォルトtrue。 - Feature:
isMuted()— デバイスの現在のミュート状態(音量 30% 以下)を非同期で取得。 - Feature:
onMuteStateChangedコールバック — デバイスがミュート閾値を超えた/下回ったときにアプリへ通知。setAdEventListenersで登録可能。 - Fix: SDK が pause 中はミュートバナーを表示しないよう修正(iOS・Android 共通)。
- Update native SDK dependency to 1.0.5 (Android: admel-sdk 1.0.5, iOS: AdMel-SDK 1.0.5).
1.0.10 #
- Feature: initial refresh interval before the first ad plays.
The SDK now waits
initialRefreshIntervalseconds (default 30s, dev: 5s) aftershowAd()is called before fetching and playing the very first ad. The value is overridden by the server's/v1/initresponse (initialRefreshInterval/refreshIntervalfields), matching the Unity plugin behavior.- Android:
AdMelSDK.isFirstPlayflag +Handler.postDelayed - iOS:
AdMelSDK.isFirstPlayflag +dispatch_after
- Android:
1.0.9 #
- Update native SDK dependency to 1.0.3 (Android: admel-sdk 1.0.3, iOS: AdMel-SDK 1.0.3).
1.0.8 #
- Feature: transparent BGM ducking during ad playback. While an audio ad is
playing, the plugin now asks the OS to lower the volume of any other audio
currently playing in the host app (BGM / SE) and restores it automatically
when the ad finishes or is stopped.
- Android: requests
AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCKand abandons it. - iOS: activates the shared
AVAudioSessionwith.duckOthersand deactivates it withNotifyOthersOnDeactivation. Publishers do not need to write any code. Implemented entirely in the Flutter plugin layer so the shared native SDK remains framework-agnostic (no impact on Unity or other native-SDK consumers).
- Android: requests
1.0.7 #
- Fix: auto-refresh is now enabled by default, matching the documentation.
Previously the native SDK shipped with
enabled = falseand consumers had to callsetAutoRefresh(enabled: true, ...)explicitly afterinitialize().
1.0.6 #
- Fix: iOS linker error - add static_framework and -ObjC linker flag for static library xcframework
1.0.5 #
- Fix: iOS use @import AdMelSDK module import for static library xcframework
1.0.4 #
- Full API update: AdMelSdk, AdMelEnvironment, showAd(), setMediaId(), setUserId()
- Ad lifecycle events (onAdStarted, onAdStopped, onAdCompleted)
- Coin reward animation support
- Environment-based initialization (development/production)
- Native plugin sync for both iOS and Android
1.0.3 #
- Fix: iOS import for AdMelSDK framework header
1.0.2 #
- Fix: Android Kotlin import for renamed AdMelSDK native class
1.0.1 #
- Initial public release
- Audio ad playback with VAST protocol support
- Banner ad display with customizable appearance
- Mute detection and visual banner fallback
- Auto-refresh for continuous ad rotation
- Playback controls (pause, resume, stop)
- Volume control
- iOS support via AdMel-SDK (CocoaPods)
- Android support via jp.admel:admel-sdk (Maven Central)