NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
A high-performance video playback component specifically designed for Flutter applications, built on top of the AliCloud Player SDK `flutter_aliplayer`.
Last release 16 days ago
22 Sep 2026
Release timing varies
gaps range from 9 days to 4 months
Nearly every release is documented
notes for 17 of 17 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
18 releases · first in 2025
One column per month.
Removed deprecated BuildContext parameter from Controller constructor, now automatically injected by AliPlayerWidgetState
aiVod scene type, supporting chapter segmentation, chapter navigation, and chapter information display during Seek on top of standard VOD playback capabilitiespauseOnBackground for background pause/resume, playbackSpeeds for custom speed list, and autoHideControlsDuration for control bar auto-hide duration configurationController into an independent DownloadManager, enhanced error code classification and subscription lifecycle managementPrivacyUtil to sanitize credential fields in VidSts / VidAuth / Url video sourcesvideoSource to non-nullable final, changed isSubtitleVisibleNotifier to non-nullable bool type, removed unreachable null branchesContextProvider of portrait instance being incorrectly cleared on fullscreen exit, causing screenshot/Toast failuresallowedScreenSleep semantics — true should allow sleep, not keep screen awakeStreamController not being closed on download completion/destroyonTapDown conflicting with drag gestureSafeNotifier remaining writable after dispose and destroy sequence race conditionNavigator.pop() crash on root route with no route to popBuildContext parameter from Controller constructor, now automatically injected by AliPlayerWidgetStateSlotWidgetBuilderWithController type, unified to SlotWidgetBuilderaiVod 场景类型,在标准 VOD 播放能力基础上,支持章节拆条、章节导航及 Seek 过程中的章节信息展示pauseOnBackground、自定义倍速列表 playbackSpeeds 及控制栏自动隐藏时长 autoHideControlsDuration 等配置项Controller 抽取为独立 DownloadManager,增强错误码分级与订阅生命周期管理Builder 迁移至工厂模式,缓存排序结果避免每次 build 重复计算PrivacyUtil,对 VidSts / VidAuth / Url 视频源的凭证字段进行脱敏videoSource 收紧为非空 final,isSubtitleVisibleNotifier 改为非空 bool 类型,移除不可达空值分支ContextProvider 导致截图/Toast 失效allowedScreenSleep 语义反转,true 应允许休眠而非保持常亮StreamController 未在完成/销毁时关闭导致的资源累积泄漏onTapDown 与拖拽手势冲突导致的重复 SeekSafeNotifier dispose 后仍可写入及销毁时序竞态问题Navigator.pop() 在根路由无栈可弹时的崩溃BuildContext 参数,由 AliPlayerWidgetState 自动注入SlotWidgetBuilderWithController 类型移除,统一为 SlotWidgetBuilderoverlays parameter deprecated, unified migration to slot system.
PlayerTranslations interface.LocalizationsDelegate for seamless MaterialApp integration.PlayerStyles).assetsPath parameter — replace all player icons with your own assets.AndroidViewType).(BuildContext context).overlays parameter deprecated, unified migration to slot system.flutter_aliplayer dependency version requirements.PlayerTranslations 接口即可注册自定义语言包(如日语、韩语等)。LocalizationsDelegate 无缝集成,可直接接入 MaterialApp。PlayerStyles 引用)。assetsPath 参数支持自定义皮肤,一键替换全套播放器图标。AndroidViewType)。(BuildContext context)。overlays 参数已废弃,统一迁移至插槽系统管理。flutter_aliplayer 依赖版本说明。Backward Compatible : Old single-parameter SlotWidgetBuilder is still supported but deprecated. Automatic signature detection ensures seamless migrati…
Slot Builder Controller Parameter for Fullscreen Support
SlotWidgetBuilderWithController type that passes the current AliPlayerWidgetController instance to slot builders.Widget Function(BuildContext context, AliPlayerWidgetController controller).SlotWidgetBuilder is still supported but deprecated. Automatic signature detection ensures seamless migration.Custom Configuration Callbacks
OnGlobalInitCallback via AliPlayerWidgetGlobalSetting.setOnGlobalInit, called after global initialization for custom global settings (e.g., setOption).OnPlayerConfigCallback via AliPlayerWidgetData.onPlayerConfig, called before prepare() for per-instance player configuration (e.g., setConfig, setOption). Supports async operations (FutureOr<void>).README Simplification
Quick Start Guide Enhancement
VidAuth video source instead of URL-based source.const constructors for better performance.Core Components Restructure
Video Source Documentation
VidAuth as the recommended playback method.Global Configuration Clarification
插槽 Builder 支持控制器参数(全屏适配)
SlotWidgetBuilderWithController 类型,将当前 AliPlayerWidgetController 实例传递给插槽 Builder。Widget Function(BuildContext context, AliPlayerWidgetController controller)。SlotWidgetBuilder 仍然支持但已标记废弃,自动签名检测确保平滑迁移。自定义配置回调
OnGlobalInitCallback,通过 AliPlayerWidgetGlobalSetting.setOnGlobalInit 设置,在全局初始化完成后调用,可用于自定义全局设置(如 setOption)。OnPlayerConfigCallback,通过 AliPlayerWidgetData.onPlayerConfig 设置,在 prepare() 前调用,用于单实例播放器配置(如 setPlayConfig、setOption)。支持异步操作(FutureOr<void>)。README 精简
快速开始指南增强
VidAuth 视频源而非基于 URL 的方式。const 构造函数以提升性能。核心组件文档重构
视频源文档
VidAuth 为推荐的播放方式。全局配置说明
[7.12.1] – Fine-Grained Slot Element Control
SlotType.centerDisplay: Control visibility of volume, brightness, and speed indicatorsSlotType.playState: Control visibility of error icon and error messageSlotType.seekThumbnail: Control visibility of thumbnail image and time textSlotType.playControl: Disable specific gesture interactionsslotBuilders is configured for a slot, hiddenSlotElements for that slot will not take effectPlayControlElements is used to disable gesture interactions, not hide UI elements.hiddenSlotElements)
SlotType.centerDisplay:控制音量、亮度、速度指示器的可见性SlotType.playState:控制错误图标和错误信息的可见性SlotType.seekThumbnail:控制缩略图和时间文本的可见性SlotType.playControl:禁用特定手势交互slotBuilders,则该插槽的 hiddenSlotElements 不会生效PlayControlElements 用于禁用手势交互,而非隐藏 UI 元素。[7.12.0] – Custom Back Press Callback & Documentation Improvements
In previous versions, AliPlayerWidget handled the system back button event by default. However, many use cases—such as showing an exit confirmation or navigating to a specific route—require developers to intercept and customize this behavior, which wasn’t possible before. To address this, we’ve added a new onBackPressed callback parameter to AliPlayerWidget, giving you full control over the back press behavior.
onBackPressed callback is triggered whenever the user presses the back button while the player is active.true → Event is handled; default navigation (Navigator.pop()) is prevented.false or null → Default behavior (Navigator.pop()) is executed.Example usage:
AliPlayerWidget(
onBackPressed: () {
// Show exit confirmation
showDialog(...);
return true; // Handled — don't pop
},
)onBackPressed)
onBackPressed callback parameter to AliPlayerWidget, allowing developers to fully customize back button behavior.true to indicate the event was handled and prevent default behavior.false or null to execute the default Navigator.pop() behavior.onBackPressed)
AliPlayerWidget 中新增 onBackPressed 回调参数,允许开发者完全自定义返回按钮行为。true 表示事件已处理,阻止默认行为。false 或 null 执行默认的 Navigator.pop() 行为。feat: upgrade version to 7.11.0; remove VidAuthPlay page and consolid…
feat: upgrade version to 7.11.0; remove VidAuthPlay page and consolid…
Nothing published for this version
[7.10.0] – Local JWT Play Authentication & Kernel SDK Update
Local JWT Play Authentication (JWTPlayAuth)
Kernel SDK Updated to v7.10.0
[7.9.1] – Slot System for Full UI Customization & Documentation Restructure
Synchronized UI Slots During Portrait-to-Fullscreen Transition
Brightness Control View Hidden by Default
竖屏转全屏 UI 插槽同步
亮度控制视图默认隐藏
Deprecation of Legacy overlays Parameter The standalone overlays parameter in AliPlayerWidget is now deprecated in favor of the unified slot system (…
Slot-Based UI Customization System
Introduced a powerful slot system to enable fine-grained, component-level customization of the player UI:
Consolidated all overlay-related customization into a dedicated overlays slot, unifying floating UI components under the new slot mechanism. This provides a clearer and more extensible way to manage all overlay elements on top of the video surface.
Backward-Compatible Overlay Usage
Existing usage of the overlays parameter remains fully supported to ensure compatibility with older integrations. Internally, overlays are now unified with the slot-based architecture, simplifying future UI extensions and maintenance.
Reorganized documentation into modular, topic-focused guides under docs/, including:
Added comprehensive usage examples in example/lib/pages/slot/slot_demo_page.dart, demonstrating:
vod, live, listPlayer, restricted, and minimal modes// Hide top and bottom bars for a clean look
AliPlayerWidget(controller, slotBuilders: {
SlotType.topBar: null,
SlotType.bottomBar: null,
});
// Add custom business overlay
AliPlayerWidget(controller, slotBuilders: {
SlotType.overlays: (context) => MyLikeShareButtons(),
});
// Fully branded UI
AliPlayerWidget(controller, slotBuilders: {
SlotType.topBar: (context) => MyAppTopBar(),
SlotType.bottomBar: (context) => MyAppBottomBar(),
SlotType.settingMenu: null, // hide settings
});Deprecation of Legacy overlays Parameter
The standalone overlays parameter in AliPlayerWidget is now deprecated in favor of the unified slot system (SlotType.overlays). While still functional for backward compatibility, new code should use slotBuilders exclusively. The legacy parameter will be removed in a future release.
Note: The
playerSurfaceslot handles core video rendering. Customizing it is not recommended, as it may cause playback instability.
This release empowers developers to build highly tailored player experiences while maintaining clean separation from core logic. Combined with the restructured documentation and practical examples, the slot system significantly lowers the barrier to advanced UI customization. Upgrading is recommended for any app requiring branded, minimal, or feature-rich player interfaces.
overlays parameter usage remains supported to ensure compatibility with older integrations.docs/, including (but not limited to):
基于插槽的 UI 定制系统 引入强大的插槽系统,实现播放器 UI 的细粒度、组件级定制:
叠加层插槽统一
向后兼容的叠加层使用
overlays 参数用法继续支持,确保与旧集成的兼容性。文档重构(docs/ 目录)
docs/ 下的模块化主题,包括(但不限于):
…flexibility in storage and file management. The breaking changes around cache and version APIs require minor migration. Upgrading is recommended for a…
Introduced new scene types to enable fine-grained UI behavior:
Implemented key user-facing media control capabilities:
Added traceId support in AliPlayerWidget to enable end-to-end video playback tracking and diagnostics.
Expanded playback logic to better handle multi-definition Video-on-Demand (VOD) content.
Player View Default Update
Changed default player view type on Android to AliPlayerViewTypeForAndroid.textureview for improved compatibility and performance.
Recommended Global Configuration Initialization
To ensure proper storage path setup and platform-specific behavior (e.g., Android external storage vs. iOS sandbox), it is recommended to initialize AliPlayerWidgetGlobalSetting early in your application lifecycle.
Migration Suggestion: Please refer to example/main.dart for the suggested initializeGlobalSettings() implementation, which intelligently configures cache and file directories based on the platform:
/// Initialize aliplayer_widget global settings, including storage paths.
/// Call this once at app startup.
Future<void> initializeGlobalSettings() async {
await AliPlayerWidgetGlobalSetting.setupConfig();
// ... (platform-specific path logic as shown in example)
AliPlayerWidgetGlobalSetting.setStoragePaths(cachePath: ..., filesPath: ...);
}Failure to initialize global settings may result in missing directories, cache errors, or playback failures. This change ensures proper file management and platform compliance.
The following methods in AliPlayerWidgetController are now deprecated and will be removed in a future release:
○ getWidgetVersion() → Use AliPlayerWidgetGlobalSetting.kWidgetVersion
○ clearCaches() → Use AliPlayerWidgetGlobalSetting.clearCaches()
Note: This release significantly enhances subtitle capabilities, introduces powerful scene-based UI control, and provides greater flexibility in storage and file management. The breaking changes around cache and version APIs require minor migration. Upgrading is recommended for apps needing external subtitles, secure playback modes, or customizable storage paths.
…flexibility in storage and file management. The breaking changes around cache and version APIs require minor migration. Upgrading is recommended for a…
SubtitleBuilder and configuration moved to AliPlayerWidgetDataSceneType.minimal: Surface-only playback with no UI elementsSceneType.restricted: Disables all controls and gestures for secure or limited playback scenariostraceId support in AliPlayerWidget to enable end-to-end video playback tracking and diagnostics.Player View Default Update
Changed default player view type on Android to AliPlayerViewTypeForAndroid.textureview for improved compatibility and performance.
Documentation Enhancements
Integration.png, Integration_en.png)videoSource APIvideoUrl and AliPlayerWidgetData.fromUrl in favor of videoSourceRecommended Global Configuration Initialization
To ensure proper storage path setup and platform-specific behavior (e.g., Android external storage vs. iOS sandbox), it is recommended to initialize AliPlayerWidgetGlobalSetting early in your application lifecycle.
Migration Suggestion:
Please refer to example/main.dart for the suggested initializeGlobalSettings() implementation, which intelligently configures cache and file directories based on the platform:
/// Initialize aliplayer_widget global settings, including storage paths.
/// Call this once at app startup.
Future<void> initializeGlobalSettings() async {
await AliPlayerWidgetGlobalSetting.setupConfig();
// ... (platform-specific path logic as shown in example)
AliPlayerWidgetGlobalSetting.setStoragePaths(cachePath: ..., filesPath: ...);
}
Failure to initialize global settings may result in missing directories, cache errors, or playback failures. This change ensures proper file management and platform compliance.
Deprecated Controller Methods
The following methods in AliPlayerWidgetController are now deprecated and will be removed in a future release:
getWidgetVersion() → Use AliPlayerWidgetGlobalSetting.kWidgetVersionclearCaches() → Use AliPlayerWidgetGlobalSetting.clearCaches()Widget version has been updated to 7.8.0 as part of this change (included in 7.8.0 release).
Note: This release significantly enhances subtitle capabilities, introduces powerful scene-based UI control, and provides greater flexibility in storage and file management. The breaking changes around cache and version APIs require minor migration. Upgrading is recommended for apps needing external subtitles, secure playback modes, or customizable storage paths.
外挂字幕支持 新增全面的外挂字幕支持,包括:
SubtitleBuilder 和配置移至 AliPlayerWidgetData高级场景类型 UI 控制 引入新场景类型实现细粒度 UI 行为:
SceneType.minimal:仅视频画面,无任何 UI 元素SceneType.restricted:禁用所有控件和手势,用于安全或受限播放场景增强媒体操作:下载、截图与直播刷新 实现关键用户操作能力:
TraceId 播放追踪
在 AliPlayerWidget 中新增 traceId 支持,实现端到端视频播放追踪和诊断。
多清晰度点播播放逻辑 扩展播放逻辑以更好地处理多清晰度点播(VOD)内容。
播放器视图默认值更新
将 Android 端默认播放器视图类型更改为 AliPlayerViewTypeForAndroid.textureview,以提升兼容性和性能。
文档增强
Integration.png、Integration_en.png)videoSource APIvideoUrl 和 AliPlayerWidgetData.fromUrl,改用 videoSource建议全局配置初始化
为确保存储路径正确设置和平台特定行为(如 Android 外部存储 vs iOS 沙盒),建议在应用生命周期早期初始化 AliPlayerWidgetGlobalSetting。
迁移建议:
请参考 example/main.dart 中建议的 initializeGlobalSettings() 实现,该方法根据平台智能配置缓存和文件目录:
/// 初始化 aliplayer_widget 全局设置,包括存储路径。
/// 在应用启动时调用一次。
Future<void> initializeGlobalSettings() async {
await AliPlayerWidgetGlobalSetting.setupConfig();
// ...(平台特定路径逻辑如示例所示)
AliPlayerWidgetGlobalSetting.setStoragePaths(cachePath: ..., filesPath: ...);
}
未初始化全局设置可能导致目录缺失、缓存错误或播放失败。此变更确保正确的文件管理和平台合规性。
废弃的控制器方法
以下 AliPlayerWidgetController 方法现已废弃,将在未来版本中移除:
getWidgetVersion() → 使用 AliPlayerWidgetGlobalSetting.kWidgetVersionclearCaches() → 使用 AliPlayerWidgetGlobalSetting.clearCaches()Widget 版本已更新为 7.8.0。
注意:此版本显著增强了字幕能力,引入了强大的基于场景的 UI 控制,并在存储和文件管理方面提供了更大的灵活性。围绕缓存和版本 API 的破坏性变更需要少量迁移。建议需要外挂字幕、安全播放模式或可自定义存储路径的应用升级。
Screen Keep-On Support Added screen keep-on functionality to prevent the device screen from dimming or locking during video playback. This feature is
Note: This release enhances playback reliability and improves user experience for streaming use cases. Upgrading is recommended for apps requiring support for RTMP/ARTC and screen keep-on behavior.
注意:此版本增强了播放可靠性,改善了流媒体使用场景下的用户体验。建议需要 RTMP/ARTC 支持和屏幕常亮行为的应用升级。
Multiple Video Source Support: Added compatibility for various video source types, enabling playback through:
Multiple Video Source Support: Added compatibility for various video source types, enabling playback through:
This enhancement ensures that developers can meet diverse playback requirements across different use cases, such as VOD (Video on Demand), live streaming, and secure media distribution.
Note: This release focuses on enhancing video source flexibility and improving developer experience. Upgrading is recommended for projects requiring multi-source playback support.
多视频源支持:新增对各类视频源类型的兼容,支持以下播放方式:
此增强确保开发者能够满足不同使用场景(如点播、直播和安全媒体分发)中的多样化播放需求。
注意:此版本专注于增强视频源灵活性和改善开发者体验。建议需要多源播放支持的项目升级。
Resolved issues related to pub.dev compliance, ensuring smoother package publication and integration.
pub.dev compliance, ensuring smoother package publication and integration.
pub.dev quality standards.Introduced business identifier support, allowing developers to tag player instances with custom identifiers for better tracking and analytics.
Added video source switching functionality to the example project, enabling seamless transitions between different video sources during playback.
pub.dev 合规性相关问题,确保更顺畅的包发布和集成。
pub.dev 质量标准。引入业务标识符支持,允许开发者为播放器实例打上自定义标识,便于追踪和分析。
在示例项目中添加视频源切换功能,支持播放期间在不同视频源之间无缝切换。
Enhanced PageView scrolling performance, significantly reducing lag during transitions.
Note: This release focuses on UI performance optimization. Upgrading is recommended for a smoother experience.
注意:此版本专注于 UI 性能优化。建议升级以获得更流畅的体验。
Improved clarity and structure of the README documentation for better readability.
AliPlayerWidget in multi-scenario applications (e.g., VOD, live streaming, short videos).This release focuses solely on improving documentation and does not include any functional changes or bug fixes. All features and APIs remain consistent with version 7.0.0.
AliPlayerWidget 的额外指导(如点播、直播、短视频)。此版本仅专注于改善文档,不包含任何功能性变更或 Bug 修复。所有功能和 API 与 7.0.0 版本保持一致。
Implemented basic video playback capabilities including play, pause, stop and seek operations.
Core Player Functionality
setRate() method.Controller Architecture
AliPlayerWidgetController as the main interface for player interactions.CHANGELOG.mdmirrorModeNotifierisMuteNotifierscaleModeNotifierisLoopNotifierspeedNotifiertrackInfoListNotifierthumbnailNotifierEvent Handling System
Setting Menu Panel
Overlay System
Platform Integration
Data Management
AliPlayerWidgetData class for managing video source information.核心播放器功能
setRate() 方法支持多种播放速率。控制器架构
AliPlayerWidgetController 作为播放器交互的主接口。mirrorModeNotifierisMuteNotifierscaleModeNotifierisLoopNotifierspeedNotifiertrackInfoListNotifierthumbnailNotifier事件处理系统
设置菜单面板
叠加层系统
平台集成
数据管理
AliPlayerWidgetData 类用于管理视频源信息。Your coding agent can read these notes before it upgrades. Set up the MCP server →