AliPlayerWidget采用类似于MVC的分层设计,将视图(View)、控制逻辑(Controller)和数据模型(Data)拆分为三个核心组件,它们协同工作以实现完整的视频播放功能。
AliPlayerWidget
AliPlayerWidget 是核心的播放器组件(View),用于嵌入到Flutter应用中并播放视频。
构造函数
AliPlayerWidget(
AliPlayerWidgetController controller, {
Key? key,
Map<SlotType, SlotWidgetBuilder?> slotBuilders = const {},
OnBackPressedCallback? onBackPressed,
});controller: 播放器控制器,用于管理播放逻辑。slotBuilders: 可选的插槽构建器映射,允许自定义各个插槽的构建方式。详见 插槽系统。onBackPressed: 可选的返回按钮点击回调。当用户按下返回键时调用。返回true表示已处理返回事件,不再执行默认行为;返回false或null将执行默认行为(Navigator.pop)。
返回事件处理(可选)
默认情况下,当用户按下返回键时:
如果当前处于全屏模式,会先退出全屏
如果提供了
onBackPressed回调,会调用该回调如果回调返回
false或null,执行默认的Navigator.pop()
通过 onBackPressed 回调,可以完全自定义返回行为:
AliPlayerWidget(
_controller,
onBackPressed: () {
// 自定义返回逻辑
Navigator.of(context).pop();
return true; // 返回 true 表示已处理,不再执行默认行为
},
);AliPlayerWidgetController
AliPlayerWidgetController 是播放器组件的控制器(Controller),用于管理播放器组件的初始化、播放、销毁等逻辑。
主要方法
configure(AliPlayerWidgetData data): 配置数据源。play(): 开始播放视频。pause(): 暂停播放。seek(Duration position): 跳转到指定播放位置。destroy(): 销毁播放器实例,释放资源。
AliPlayerWidgetData (Data)
AliPlayerWidgetData 是播放器组件的数据模型(Data),包含视频地址、封面图、标题等信息。
属性
videoSource: 播放器视频源(必填)。coverUrl: 封面图地址(可选)。videoTitle: 视频标题(可选)。thumbnailUrl: 缩略图地址(可选)。sceneType: 播放场景类型,默认为点播(SceneType.vod)。onPlayerConfig: 播放器自定义配置回调(可选)。详情请参见自定义配置。
全局配置项(可选)
除了上述三大核心组件外,AliPlayerWidget 还提供了一个可选的全局配置类 AliPlayerWidgetGlobalSetting,用于配置播放器的全局行为,如缓存设置、存储路径等。
主要功能
全局配置初始化: 通过 [setupConfig] 方法初始化全局配置。
存储路径设置: 通过 [setStoragePaths] 方法设置缓存和文件存储路径。
缓存管理: 通过 [clearCaches] 方法清除所有缓存。
自定义配置: 支持全局级别和实例级别的自定义配置,详情请参见自定义配置。
使用说明
组件已内置推荐的最优全局配置,通常无需额外设置。如需自定义,可参考自定义配置文档。